Service | Microsoft Docs article | Related commit history on GitHub | Change details |
---|---|---|---|
active-directory | On Premises Custom Connector | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/app-provisioning/on-premises-custom-connector.md | Azure AD supports preintegrated connectors for applications that support the fol > - [REST](on-premises-ldap-connector-configure.md) > - [SOAP](on-premises-ldap-connector-configure.md) -For connectivity to applications that don't support the aforementioned protocols and standards, customers and [partners](https://social.technet.microsoft.com/wiki/contents/articles/1589.fim-2010-mim-2016-management-agents-from-partners.aspx) have built custom [ECMA 2.0](https://learn.microsoft.com/previous-versions/windows/desktop/forefront-2010/hh859557(v=vs.100)) connectors for Microsoft Identity Manager (MIM) 2016. You can now use those ECMA 2.0 connectors with the lightweight Azure AD provisioning agent, without needing MIM sync deployed. +For connectivity to applications that don't support the aforementioned protocols and standards, customers and [partners](https://social.technet.microsoft.com/wiki/contents/articles/1589.fim-2010-mim-2016-management-agents-from-partners.aspx) have built custom [ECMA 2.0](/previous-versions/windows/desktop/forefront-2010/hh859557(v=vs.100)) connectors for Microsoft Identity Manager (MIM) 2016. You can now use those ECMA 2.0 connectors with the lightweight Azure AD provisioning agent, without needing MIM sync deployed. \ ++++## Exporting and importing a MIM connector +If you've got a customer connector in MIM, you can export it by following the instructions [here](on-premises-migrate-microsoft-identity-manager.md#export-a-connector-configuration-from-mim-sync). You need to save the XML file, the DLL, and related software for your connector. ++To import your connector, you can use the instructions [here](on-premises-migrate-microsoft-identity-manager.md#import-a-connector-configuration). You will need to copy the DLL for your connector, and any of its prerequisite DLLs, to that same ECMA subdirectory of the Service directory. After the xml has been imported, continue through the wizard and ensure that all the required fields are populated. ## Limitations -Custom connectors built for MIM rely on the [ECMA framework](https://learn.microsoft.com/previous-versions/windows/desktop/forefront-2010/hh859557(v=vs.100)). The following table includes capabilities of the ECMA framework that are either partially supported or not supported by the Azure AD provisioning agent. For a list of known limitations for the Azure AD provisioning service and on-premises application provisioning, see [here](https://learn.microsoft.com/azure/active-directory/app-provisioning/known-issues?pivots=app-provisioning#on-premises-application-provisioning). +Custom connectors built for MIM rely on the [ECMA framework](/previous-versions/windows/desktop/forefront-2010/hh859557(v=vs.100)). The following table includes capabilities of the ECMA framework that are either partially supported or not supported by the Azure AD provisioning agent. For a list of known limitations for the Azure AD provisioning service and on-premises application provisioning, see [here](known-issues.md#on-premises-application-provisioning). | **Capability / feature** | **Support** | **Comments** | |
active-directory | Access Tokens | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/develop/access-tokens.md | The Microsoft identity platform uses some claims to help secure tokens for reuse | `uti` | String | Token identifier claim, equivalent to `jti` in the JWT specification. Unique, per-token identifier that is case-sensitive. | | | `rh` | Opaque String | An internal claim used by Azure to revalidate tokens. Resources shouldn't use this claim. | | | `ver` | String, either `1.0` or `2.0` | Indicates the version of the access token. | |+| `xms_cc` | JSON array of strings | Indicates whether the client application that acquired the token is capable of handling claims challenges. This claim is commonly used in Conditional Access and Continuous Access Evaluation scenarios. The resource server that the token is issued for controls the presence of the claim in it. For example, a service application. For more information, see [Claims challenges, claims requests and client capabilities](claims-challenge.md?tabs=dotnet). Resource servers should check this claim in access tokens received from client applications. If this claim is present, resource servers can respond back with a claims challenge. The claims challenge requests more claims in a new access token to authorize access to a protected resource. | #### Groups overage claim |
active-directory | Active Directory Optional Claims | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/develop/active-directory-optional-claims.md | - Title: Provide optional claims to Azure AD apps -description: How to add custom or additional claims to the SAML 2.0 and JSON Web Tokens (JWT) tokens issued by Microsoft identity platform. ------ Previously updated : 03/28/2023------# Provide optional claims to your app --Application developers can use optional claims in their Azure AD applications to specify which claims they want in tokens sent to their application. --You can use optional claims to: --- Select additional claims to include in tokens for your application.-- Change the behavior of certain claims that the Microsoft identity platform returns in tokens.-- Add and access custom claims for your application.--For the lists of standard claims, see the [access token](access-tokens.md) and [id_token](id-tokens.md) claims documentation. --While optional claims are supported in both v1.0 and v2.0 format tokens and SAML tokens, they provide most of their value when moving from v1.0 to v2.0. One of the goals of the [Microsoft identity platform](./v2-overview.md) is smaller token sizes to ensure optimal performance by clients. As a result, several claims formerly included in the access and ID tokens are no longer present in v2.0 tokens and must be asked for specifically on a per-application basis. --**Table 1: Applicability** --| Account Type | v1.0 tokens | v2.0 tokens | -|-|-|-| -| Personal Microsoft account | N/A | Supported | -| Azure AD account | Supported | Supported | --## v1.0 and v2.0 optional claims set --The set of optional claims available by default for applications to use are listed in the following table. You can use custom data in extension attributes and directory extensions to add optional claims for your application. To use directory extensions, see [Directory Extensions](#configuring-directory-extension-optional-claims). When adding claims to the **access token**, the claims apply to access tokens requested *for* the application (a web API), not claims requested *by* the application. No matter how the client accesses your API, the right data is present in the access token that is used to authenticate against your API. --> [!NOTE] ->The majority of these claims can be included in JWTs for v1.0 and v2.0 tokens, but not SAML tokens, except where noted in the Token Type column. Consumer accounts support a subset of these claims, marked in the "User Type" column. Many of the claims listed do not apply to consumer users (they have no tenant, so `tenant_ctry` has no value). --**Table 2: v1.0 and v2.0 optional claim set** --| Name | Description | Token Type | User Type | Notes | -|-|-||--|--| -| `acct` | Users account status in tenant | JWT, SAML | | If the user is a member of the tenant, the value is `0`. If they're a guest, the value is `1`. | -| `auth_time` | Time when the user last authenticated. See OpenID Connect spec.| JWT | | | -| `ctry` | User's country/region | JWT | | Azure AD returns the `ctry` optional claim if it's present and the value of the field is a standard two-letter country/region code, such as FR, JP, SZ, and so on. | -| `email` | The reported email address for this user | JWT, SAML | MSA, Azure AD | This value is included by default if the user is a guest in the tenant. For managed users (the users inside the tenant), it must be requested through this optional claim or, on v2.0 only, with the OpenID scope. This value isn't guaranteed to be correct, and is mutable over time - never use it for authorization or to save data for a user. For more information, see [Validate the user has permission to access this data](access-tokens.md). If you require an addressable email address in your app, request this data from the user directly, using this claim as a suggestion or prefill in your UX. | -| `fwd` | IP address.| JWT | | Adds the original IPv4 address of the requesting client (when inside a VNET) | -| `groups`| Optional formatting for group claims |JWT, SAML| |For details see [Group claims](#configuring-groups-optional-claims). For more information about group claims, see [How to configure group claims](../hybrid/how-to-connect-fed-group-claims.md). Used with the GroupMembershipClaims setting in the [application manifest](reference-app-manifest.md), which must be set as well. -| `idtyp` | Token type | JWT access tokens | Special: only in app-only access tokens | Value is `app` when the token is an app-only token. This claim is the most accurate way for an API to determine if a token is an app token or an app+user token.| -| `login_hint` | Login hint | JWT | MSA, Azure AD | An opaque, reliable login hint claim that's base64 encoded. Don't modify this value. This claim is the best value to use for the `login_hint` OAuth parameter in all flows to get SSO. It can be passed between applications to help them silently SSO as well - application A can sign in a user, read the `login_hint` claim, and then send the claim and the current tenant context to application B in the query string or fragment when the user selects on a link that takes them to application B. To avoid race conditions and reliability issues, the `login_hint` claim *doesn't* include the current tenant for the user, and defaults to the user's home tenant when used. If you're operating in a guest scenario where the user is from another tenant, you must provide a tenant identifier in the sign-in request, and pass the same to apps you partner with. This claim is intended for use with your SDK's existing `login_hint` functionality, however that it exposed. | -| `sid` | Session ID, used for per-session user sign out. | JWT | Personal and Azure AD accounts. | | -| `tenant_ctry` | Resource tenant's country/region | JWT | | Same as `ctry` except set at a tenant level by an admin. Must also be a standard two-letter value. | -| `tenant_region_scope` | Region of the resource tenant | JWT | | | -| `upn` | UserPrincipalName | JWT, SAML | | An identifier for the user that can be used with the username_hint parameter. Not a durable identifier for the user and shouldn't be used for authorization or to uniquely identity user information (for example, as a database key). Instead, use the user object ID (`oid`) as a database key. For more information, see [Validate the user has permission to access this data](access-tokens.md). Users signing in with an [alternate login ID](../authentication/howto-authentication-use-email-signin.md) shouldn't be shown their User Principal Name (UPN). Instead, use the following ID token claims for displaying sign-in state to the user: `preferred_username` or `unique_name` for v1 tokens and `preferred_username` for v2 tokens. Although this claim is automatically included, you can specify it as an optional claim to attach additional properties to modify its behavior in the guest user case. You should use the `login_hint` claim for `login_hint` use - human-readable identifiers like UPN are unreliable.| -| `verified_primary_email` | Sourced from the user's PrimaryAuthoritativeEmail | JWT | | | -| `verified_secondary_email` | Sourced from the user's SecondaryAuthoritativeEmail | JWT | | | -| `vnet` | VNET specifier information. | JWT | | | -| `xms_pdl` | Preferred data location | JWT | | For Multi-Geo tenants, the preferred data location is the three-letter code showing the geographic region the user is in. For more info, see the [Azure AD Connect documentation about preferred data location](../hybrid/how-to-connect-sync-feature-preferreddatalocation.md).<br/>For example: `APC` for Asia Pacific. | -| `xms_pl` | User preferred language | JWT ||The user's preferred language, if set. Sourced from their home tenant, in guest access scenarios. Formatted LL-CC ("en-us"). | -| `xms_tpl` | Tenant preferred language| JWT | | The resource tenant's preferred language, if set. Formatted LL ("en"). | -| `ztdid` | Zero-touch Deployment ID | JWT | | The device identity used for [Windows AutoPilot](/windows/deployment/windows-autopilot/windows-10-autopilot) | --> [!WARNING] -> Never use `email` or `upn` claim values to store or determine whether the user in an access token should have access to data. Mutable claim values like these can change over time, making them insecure and unreliable for authorization. --## v2.0-specific optional claims set --These claims are always included in v1.0 Azure AD tokens, but not included in v2.0 tokens unless requested. These claims are only applicable for JWTs (ID tokens and Access Tokens). --**Table 3: v2.0-only optional claims** --| JWT Claim | Name | Description | Notes | -|||-|-| -| `ipaddr` | IP Address | The IP address the client logged in from. | | -| `onprem_sid` | On-premises Security Identifier | | | -| `pwd_exp` | Password Expiration Time | The number of seconds after the time in the iat claim at which the password expires. This claim is only included when the password is expiring soon (as defined by "notification days" in the password policy). | | -| `pwd_url` | Change Password URL | A URL that the user can visit to change their password. This claim is only included when the password is expiring soon (as defined by "notification days" in the password policy). | | -| `in_corp` | Inside Corporate Network | Signals if the client is logging in from the corporate network. If they're not, the claim isn't included. | Based off of the [trusted IPs](../authentication/howto-mfa-mfasettings.md#trusted-ips) settings in MFA. | -| `family_name` | Last Name | Provides the last name, surname, or family name of the user as defined in the user object. <br>"family_name":"Miller" | Supported in MSA and Azure AD. Requires the `profile` scope. | -| `given_name` | First name | Provides the first or "given" name of the user, as set on the user object.<br>"given_name": "Frank" | Supported in MSA and Azure AD. Requires the `profile` scope. | -| `upn` | User Principal Name | An identifier for the user that can be used with the username_hint parameter. Not a durable identifier for the user and shouldn't be used for authorization or to uniquely identity user information (for example, as a database key). For more information, see [Validate the user has permission to access this data](access-tokens.md). Instead, use the user object ID (`oid`) as a database key. Users signing in with an [alternate login ID](../authentication/howto-authentication-use-email-signin.md) shouldn't be shown their User Principal Name (UPN). Instead, use the following `preferred_username` claim for displaying sign-in state to the user. | See [additional properties](#additional-properties-of-optional-claims) for configuration of the claim. Requires the `profile` scope.| --## v1.0-specific optional claims set --Some of the improvements of the v2 token format are available to apps that use the v1 token format, as they help improve security and reliability. These improvements won't take effect for ID tokens requested from the v2 endpoint, nor access tokens for APIs that use the v2 token format. These improvements only apply to JWTs, not SAML tokens. --**Table 4: v1.0-only optional claims** ---| JWT Claim | Name | Description | Notes | -|||-|-| -|`aud` | Audience | Always present in JWTs, but in v1 access tokens it can be emitted in various ways - any appID URI, with or without a trailing slash, and the client ID of the resource. This randomization can be hard to code against when performing token validation. Use the [additional properties for this claim](#additional-properties-of-optional-claims) to ensure it's always set to the resource's client ID in v1 access tokens. | v1 JWT access tokens only| -|`preferred_username` | Preferred username | Provides the preferred username claim within v1 tokens. This claim makes it easier for apps to provide username hints and show human readable display names, regardless of their token type. It's recommended that you use this optional claim instead of using, for example, `upn` or `unique_name`. | v1 ID tokens and access tokens | --### Additional properties of optional claims --Some optional claims can be configured to change the way the claim is returned. These additional properties are mostly used to help migration of on-premises applications with different data expectations. For example, `include_externally_authenticated_upn_without_hash` helps with clients that can't handle hash marks (`#`) in the UPN. --**Table 4: Values for configuring optional claims** --| Property name | Additional Property name | Description | -|-|--|-| -| `upn` | | Can be used for both SAML and JWT responses, and for v1.0 and v2.0 tokens. | -| | `include_externally_authenticated_upn` | Includes the guest UPN as stored in the resource tenant. For example, `foo_hometenant.com#EXT#@resourcetenant.com` | -| | `include_externally_authenticated_upn_without_hash` | Same as listed previously, except that the hash marks (`#`) are replaced with underscores (`_`), for example `foo_hometenant.com_EXT_@resourcetenant.com`| -| `aud` | | In v1 access tokens, this claim is used to change the format of the `aud` claim. This claim has no effect in v2 tokens or either version's ID tokens, where the `aud` claim is always the client ID. Use this configuration to ensure that your API can more easily perform audience validation. Like all optional claims that affect the access token, the resource in the request must set this optional claim, since resources own the access token.| -| | `use_guid` | Emits the client ID of the resource (API) in GUID format as the `aud` claim always instead of it being runtime dependent. For example, if a resource sets this flag, and its client ID is `bb0a297b-6a42-4a55-ac40-09a501456577`, any app that requests an access token for that resource will receive an access token with `aud` : `bb0a297b-6a42-4a55-ac40-09a501456577`. </br></br> Without this claim set, an API could get tokens with an `aud` claim of `api://MyApi.com`, `api://MyApi.com/`, `api://myapi.com/AdditionalRegisteredField` or any other value set as an app ID URI for that API, and the client ID of the resource. | --#### Additional properties example --```json -"optionalClaims": { - "idToken": [ - { - "name": "upn", - "essential": false, - "additionalProperties": [ - "include_externally_authenticated_upn" - ] - } - ] -} -``` --This OptionalClaims object causes the ID token returned to the client to include a `upn` claim with the additional home tenant and resource tenant information. The `upn` claim is only changed in the token if the user is a guest in the tenant (that uses a different IDP for authentication). --## Configuring optional claims --> [!IMPORTANT] -> Access tokens are **always** generated using the manifest of the resource, not the client. So in the request `...scope=https://graph.microsoft.com/user.read...` the resource is the Microsoft Graph API. Thus, the access token is created using the Microsoft Graph API manifest, not the client's manifest. Changing the manifest for your application will never cause tokens for the Microsoft Graph API to look different. In order to validate that your `accessToken` changes are in effect, request a token for your application, not another app. --You can configure optional claims for your application through the UI or application manifest. --1. Go to the <a href="https://portal.azure.com/" target="_blank">Azure portal</a>. -1. Search for and select **Azure Active Directory**. -1. Under **Manage**, select **App registrations**. -1. Choose the application for which you want to configure optional claims based on your scenario and desired outcome. --**Configuring optional claims through the UI:** --[](./media/active-directory-optional-claims/token-configuration.png) --1. Under **Manage**, select **Token configuration**. - - The UI option **Token configuration** blade isn't available for apps registered in an Azure AD B2C tenant, which can be configured by modifying the application manifest. For more information, see [Add claims and customize user input using custom policies in Azure Active Directory B2C](../../active-directory-b2c/configure-user-input.md) --1. Select **Add optional claim**. -1. Select the token type you want to configure. -1. Select the optional claims to add. -1. Select **Add**. ---**Configuring optional claims through the application manifest:** --[](./media/active-directory-optional-claims/app-manifest.png) --1. Under **Manage**, select **Manifest**. A web-based manifest editor opens, allowing you to edit the manifest. Optionally, you can select **Download** and edit the manifest locally, and then use **Upload** to reapply it to your application. For more information on the application manifest, see the [Understanding the Azure AD application manifest article](reference-app-manifest.md). -- The following application manifest entry adds the `auth_time`, `ipaddr`, and `upn` optional claims to ID, access, and SAML tokens. -- ```json - "optionalClaims": { - "idToken": [ - { - "name": "auth_time", - "essential": false - } - ], - "accessToken": [ - { - "name": "ipaddr", - "essential": false - } - ], - "saml2Token": [ - { - "name": "upn", - "essential": false - }, - { - "name": "extension_ab603c56068041afb2f6832e2a17e237_skypeId", - "source": "user", - "essential": false - } - ] - } - ``` --2. When finished, select **Save**. Now the specified optional claims are included in the tokens for your application. ---### OptionalClaims type --Declares the optional claims requested by an application. An application can configure optional claims to be returned in each of three types of tokens (ID token, access token, SAML 2 token) that it can receive from the security token service. The application can configure a different set of optional claims to be returned in each token type. The OptionalClaims property of the Application entity is an OptionalClaims object. --**Table 5: OptionalClaims type properties** --| Name | Type | Description | -||-|-| -| `idToken` | Collection (OptionalClaim) | The optional claims returned in the JWT ID token. | -| `accessToken` | Collection (OptionalClaim) | The optional claims returned in the JWT access token. | -| `saml2Token` | Collection (OptionalClaim) | The optional claims returned in the SAML token. | --### OptionalClaim type --Contains an optional claim associated with an application or a service principal. The idToken, accessToken, and saml2Token properties of the [OptionalClaims](/graph/api/resources/optionalclaims) type is a collection of OptionalClaim. -If supported by a specific claim, you can also modify the behavior of the OptionalClaim using the AdditionalProperties field. --**Table 6: OptionalClaim type properties** --| Name | Type | Description | -||-|| -| `name` | Edm.String | The name of the optional claim. | -| `source` | Edm.String | The source (directory object) of the claim. There are predefined claims and user-defined claims from extension properties. If the source value is null, the claim is a predefined optional claim. If the source value is user, the value in the name property is the extension property from the user object. | -| `essential` | Edm.Boolean | If the value is true, the claim specified by the client is necessary to ensure a smooth authorization experience for the specific task requested by the end user. The default value is false. | -| `additionalProperties` | Collection (Edm.String) | Additional properties of the claim. If a property exists in this collection, it modifies the behavior of the optional claim specified in the name property. | --## Configuring directory extension optional claims --In addition to the standard optional claims set, you can also configure tokens to include Microsoft Graph extensions. For more info, see [Add custom data to resources using extensions](/graph/extensibility-overview). --Schema and open extensions aren't supported by optional claims, only extension attributes and directory extensions. This feature is useful for attaching additional user information that your app can use – for example, an additional identifier or important configuration option that the user has set. See the bottom of this page for an example. --Directory extensions are an Azure AD-only feature. If your application manifest requests a custom extension and an MSA user logs in to your app, these extensions won't be returned. --### Directory extension formatting --When configuring directory extension optional claims using the application manifest, use the full name of the extension (in the format: `extension_<appid>_<attributename>`). The `<appid>` is the stripped version of the **appId** (or Client ID) of the application requesting the claim. --Within the JWT, these claims are emitted with the following name format: `extn.<attributename>`. --Within the SAML tokens, these claims are emitted with the following URI format: `http://schemas.microsoft.com/identity/claims/extn.<attributename>` --## Configuring groups optional claims --This section covers the configuration options under optional claims for changing the group attributes used in group claims from the default group objectID to attributes synced from on-premises Windows Active Directory. You can configure groups optional claims for your application through the UI or application manifest. Group optional claims are only emitted in the JWT for **user principals**. **Service principals** _won't_ have group optional claims emitted in the JWT. --> [!IMPORTANT] -> Azure AD limits the number of groups emitted in a token to 150 for SAML assertions and 200 for JWT, including nested groups. For more information on group limits and important caveats for group claims from on-premises attributes, see [Configure group claims for applications with Azure AD](../hybrid/how-to-connect-fed-group-claims.md). --**Configuring groups optional claims through the UI:** --1. Sign in to the <a href="https://portal.azure.com/" target="_blank">Azure portal</a>. -1. After you've authenticated, choose your Azure AD tenant by selecting it from the top-right corner of the page. -1. Search for and select **Azure Active Directory**. -1. Under **Manage**, select **App registrations**. -1. Select the application you want to configure optional claims for in the list. -1. Under **Manage**, select **Token configuration**. -1. Select **Add groups claim**. -1. Select the group types to return (**Security groups**, or **Directory roles**, **All groups**, and/or **Groups assigned to the application**): - - The **Groups assigned to the application** option includes only groups assigned to the application. The **Groups assigned to the application** option is recommended for large organizations due to the group number limit in token. To change the groups assigned to the application, select the application from the **Enterprise applications** list. Select **Users and groups** and then **Add user/group**. Select the group(s) you want to add to the application from **Users and groups**. - - The **All Groups** option includes **SecurityGroup**, **DirectoryRole**, and **DistributionList**, but not **Groups assigned to the application**. -1. Optional: select the specific token type properties to modify the groups claim value to contain on premises group attributes or to change the claim type to a role. -1. Select **Save**. --**Configuring groups optional claims through the application manifest:** --1. Sign in to the <a href="https://portal.azure.com/" target="_blank">Azure portal</a>. -1. After you've authenticated, choose your Azure AD tenant by selecting it from the top-right corner of the page. -1. Search for and select **Azure Active Directory**. -1. Select the application you want to configure optional claims for in the list. -1. Under **Manage**, select **Manifest**. -1. Add the following entry using the manifest editor: -- The valid values are: -- - "All" (this option includes SecurityGroup, DirectoryRole, and DistributionList) - - "SecurityGroup" - - "DirectoryRole" - - "ApplicationGroup" (this option includes only groups that are assigned to the application) -- For example: -- ```json - "groupMembershipClaims": "SecurityGroup" - ``` -- By default Group ObjectIDs will be emitted in the group claim value. To modify the claim value to contain on premises group attributes, or to change the claim type to role, use OptionalClaims configuration as follows: --1. Set group name configuration optional claims. -- If you want groups in the token to contain the on premises AD group attributes in the optional claims section, specify which token type optional claim should be applied to, the name of optional claim requested and any additional properties desired. Multiple token types can be listed: -- - idToken for the OIDC ID token - - accessToken for the OAuth access token - - Saml2Token for SAML tokens. -- The Saml2Token type applies to both SAML1.1 and SAML2.0 format tokens. -- For each relevant token type, modify the groups claim to use the OptionalClaims section in the manifest. The OptionalClaims schema is as follows: -- ```json - { - "name": "groups", - "source": null, - "essential": false, - "additionalProperties": [] - } - ``` -- | Optional claims schema | Value | - |-|-| - | **name:** | Must be "groups" | - | **source:** | Not used. Omit or specify null | - | **essential:** | Not used. Omit or specify false | - | **additionalProperties:** | List of additional properties. Valid options are "sam_account_name", "dns_domain_and_sam_account_name", "netbios_domain_and_sam_account_name", "emit_as_roles" and “cloud_displayname” | -- In additionalProperties only one of "sam_account_name", "dns_domain_and_sam_account_name", "netbios_domain_and_sam_account_name" are required. If more than one is present, the first is used and any others ignored. Additionally you can add “cloud_displayname” to emit display name of the cloud group. Note, that this option works only when `“groupMembershipClaims”` is set to `“ApplicationGroup”`. -- Some applications require group information about the user in the role claim. To change the claim type from a group claim to a role claim, add "emit_as_roles" to additional properties. The group values are emitted in the role claim. -- If "emit_as_roles" is used, any application roles configured that the user is assigned won't appear in the role claim. --**Examples:** --1) Emit groups as group names in OAuth access tokens in dnsDomainName\sAMAccountName format -- **UI configuration:** -- [](./media/active-directory-optional-claims/groups-example-1.png) -- **Application manifest entry:** -- ```json - "optionalClaims": { - "accessToken": [ - { - "name": "groups", - "additionalProperties": [ - "dns_domain_and_sam_account_name" - ] - } - ] - } - ``` --2) Emit group names to be returned in netbiosDomain\sAMAccountName format as the roles claim in SAML and OIDC ID Tokens -- **UI configuration:** -- [](./media/active-directory-optional-claims/groups-example-2.png) -- **Application manifest entry:** -- ```json - "optionalClaims": { - "saml2Token": [ - { - "name": "groups", - "additionalProperties": [ - "netbios_domain_and_sam_account_name", - "emit_as_roles" - ] - } - ], - "idToken": [ - { - "name": "groups", - "additionalProperties": [ - "netbios_domain_and_sam_account_name", - "emit_as_roles" - ] - } - ] - } - ``` -3) Emit group names in the format of samAccountName for on-premises synced groups and display name for cloud groups in SAML and OIDC ID Tokens for the groups assigned to the application: - - **Application manifest entry:** -- ```json - "groupMembershipClaims": "ApplicationGroup", - "optionalClaims": { - "saml2Token": [ - { - "name": "groups", - "additionalProperties": [ - "sam_account_name", - "cloud_displayname" - ] - } - ], - "idToken": [ - { - "name": "groups", - "additionalProperties": [ - "sam_account_name", - "cloud_displayname" - ] - } - ] - } - ``` --## Optional claims example --In this section, you can walk through a scenario to see how you can use the optional claims feature for your application. -There are multiple options available for updating the properties on an application's identity configuration to enable and configure optional claims: --- You can use the **Token configuration** UI (see example below)-- You can use the **Manifest** (see example below). Read the [Understanding the Azure AD application manifest document](./reference-app-manifest.md) first for an introduction to the manifest.-- It's also possible to write an application that uses the [Microsoft Graph API](/graph/use-the-api) to update your application. The [OptionalClaims](/graph/api/resources/optionalclaims) type in the Microsoft Graph API reference guide can help you with configuring the optional claims.--**Example:** --In the example below, you'll use the **Token configuration** UI and **Manifest** to add optional claims to the access, ID, and SAML tokens intended for your application. Different optional claims are added to each type of token that the application can receive: --- The ID tokens will now contain the UPN for federated users in the full form (`<upn>_<homedomain>#EXT#@<resourcedomain>`).-- The access tokens that other clients request for this application will now include the auth_time claim.-- The SAML tokens will now contain the skypeId directory schema extension (in this example, the app ID for this app is ab603c56068041afb2f6832e2a17e237). The SAML tokens will expose the Skype ID as `extension_ab603c56068041afb2f6832e2a17e237_skypeId`.--**UI configuration:** --1. Sign in to the <a href="https://portal.azure.com/" target="_blank">Azure portal</a>. -1. After you've authenticated, choose your Azure AD tenant by selecting it from the top-right corner of the page. --1. Search for and select **Azure Active Directory**. --1. Under **Manage**, select **App registrations**. --1. Find the application you want to configure optional claims for in the list and select it. --1. Under **Manage**, select **Token configuration**. --1. Select **Add optional claim**, select the **ID** token type, select **upn** from the list of claims, and then select **Add**. --1. Select **Add optional claim**, select the **Access** token type, select **auth_time** from the list of claims, then select **Add**. --1. From the Token Configuration overview screen, select the pencil icon next to **upn**, select the **Externally authenticated** toggle, and then select **Save**. --1. Select **Add optional claim**, select the **SAML** token type, select **extn.skypeID** from the list of claims (only applicable if you've created an Azure AD user object called skypeID), and then select **Add**. -- [](./media/active-directory-optional-claims/token-config-example.png) --**Manifest configuration:** --1. Sign in to the <a href="https://portal.azure.com/" target="_blank">Azure portal</a>. -1. After you've authenticated, choose your Azure AD tenant by selecting it from the top-right corner of the page. -1. Search for and select **Azure Active Directory**. -1. Find the application you want to configure optional claims for in the list and select it. -1. Under **Manage**, select **Manifest** to open the inline manifest editor. -1. You can directly edit the manifest using this editor. The manifest follows the schema for the [Application entity](./reference-app-manifest.md), and automatically formats the manifest once saved. New elements are added to the `OptionalClaims` property. -- ```json - "optionalClaims": { - "idToken": [ - { - "name": "upn", - "essential": false, - "additionalProperties": [ - "include_externally_authenticated_upn" - ] - } - ], - "accessToken": [ - { - "name": "auth_time", - "essential": false - } - ], - "saml2Token": [ - { - "name": "extension_ab603c56068041afb2f6832e2a17e237_skypeId", - "source": "user", - "essential": true - } - ] - } - ``` --1. When you're finished updating the manifest, select **Save** to save the manifest. --## Next steps --Learn more about the standard claims provided by Azure AD. --- [ID tokens](id-tokens.md)-- [Access tokens](access-tokens.md) |
active-directory | Active Directory Schema Extensions | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/develop/active-directory-schema-extensions.md | - Title: Use Azure AD directory extension attributes in claims -description: Describes how to use directory extension attributes for sending user data to applications in token claims. -------- Previously updated : 01/06/2023----# Using directory extension attributes in claims --Directory extension attributes, also called Azure AD extensions, provide a way to store additional data in Azure Active Directory on user objects and other directory objects such as groups, tenant details, service principals. Only extension attributes on user objects can be used for emitting claims to applications. This article describes how to use directory extension attributes for sending user data to applications in token claims. --> [!NOTE] -> Microsoft Graph provides three other extension mechanisms to customize Graph objects. These are the extension attributes 1-15, open extensions, and schema extensions. See the [Microsoft Graph documentation](/graph/extensibility-overview) for details. Data stored on Microsoft Graph objects using open and schema extensions are not available as sources for claims in tokens. --Directory extension attributes are always associated with an application in the tenant and are referenced by the application's *appId* in their name. --The identifier for a directory extension attribute is of the form *extension_xxxxxxxxx_AttributeName*. Where *xxxxxxxxx* is the *appId* of the application the extension was defined for, with only characters 0-9 and A-Z. --## Registering and using directory extensions -Directory extension attributes can be registered and populated in one of two ways: --- By configuring Azure AD Connect to create them and to sync data into them from on-premises AD. See [Azure AD Connect Sync Directory Extensions](../hybrid/how-to-connect-sync-feature-directory-extensions.md).-- By using Microsoft Graph to register, set the values of, and read from [directory extensions](/graph/extensibility-overview#directory-azure-ad-extensions). [PowerShell cmdlets](/powershell/azure/active-directory/using-extension-attributes-sample) are also available.--### Emitting claims with data from directory extension attributes created with Azure AD Connect -Directory extension attributes created and synced using Azure AD Connect are always associated with the application ID used by Azure AD Connect. These attributes can be used as a source for claims both by configuring them as claims in the **Enterprise Applications** configuration in the Portal UI for SAML applications registered using the Gallery or the non-Gallery application configuration experience under **Enterprise Applications**, and via a claims-mapping policy for applications registered via the Application registration experience. Once a directory extension attribute created via AD Connect is in the directory, it will show in the SAML SSO claims configuration UI. --### Emitting claims with data from directory extension attributes created for an application using Graph or PowerShell -If a directory extension attribute is registered for an application using Microsoft Graph or PowerShell (via an applications initial setup or provisioning step for instance), the same application can be configured in Azure Active Directory to receive data in that attribute from a user object in a claim when the user signs in. The application can be configured to receive data in directory extensions that are registered on that same application using [optional claims](active-directory-optional-claims.md#configuring-directory-extension-optional-claims). These can be set in the application manifest. This enables a multi-tenant application to register directory extension attributes for its own use. When the application is provisioned into a tenant the associated directory extensions become available to be set on users in that tenant, and to be consumed. Once it's configured in the tenant and consent granted, it can be used to store and retrieve data via graph and to map to claims in tokens the Microsoft identity platform emits to applications. --Directory extension attributes can be registered and populated for any application. --If an application needs to send claims with data from an extension attribute registered on a different application, a [claims mapping policy](active-directory-claims-mapping.md) must be used to map the extension attribute to the claim. A common pattern for managing directory extension attributes is to create an application specifically to be the point of registration for all the directory extensions you need. It doesn't have to be a real application and this technique means that all the extensions have the same appID in their name. --For example, here is a claims-mapping policy to emit a single claim from a directory extension attribute in an OAuth/OIDC token: --```json -{ - "ClaimsMappingPolicy": { - "Version": 1, - "IncludeBasicClaimSet": "false", - "ClaimsSchema": [{ - "Source": "User", - "ExtensionID": "extension_xxxxxxx_test", - "JWTClaimType": "http://schemas.contoso.com/identity/claims/exampleclaim" - }, - ] - } -} -``` --Where *xxxxxxx* is the appID (or Client ID) of the application that the extension was registered with. --> [!WARNING] -> When you define a claims mapping policy for a directory extension attribute, use the `ExtensionID` property instead of the `ID` property within the body of the `ClaimsSchema` array, as shown in the example above. --> [!TIP] -> Case consistency is important when setting directory extension attributes on objects. Extension attribute names aren't cases sensitive when being set up, but they are case sensitive when being read from the directory by the token service. If an extension attribute is set on a user object with the name "LegacyId" and on another user object with the name "legacyid", when the attribute is mapped to a claim using the name "LegacyId" the data will be successfully retrieved and the claim included in the token for the first user but not the second. --## Next steps -- Learn how to [add custom or additional claims to the SAML 2.0 and JSON Web Tokens (JWT) tokens](active-directory-optional-claims.md).-- Learn how to [customize claims emitted in tokens for a specific app](active-directory-claims-mapping.md). |
active-directory | Howto Restore App | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/develop/howto-restore-app.md | This is because organization-specific settings are stored on a separate object, 2. Select **Restore app registration**. ## Permanently delete an application-You can manually permanently delete an application from your organization. A permanently deleted application can't be restored by you, another administrator, or by Microsoft customer support. +You can manually permanently delete an application from your organization. A permanently deleted application can't be restored by you, another administrator, or by Microsoft customer support. However, this does not permanently delete the corresponding service principal. A service principal cannot be restored without having an active corresponding application, so the service principal can be manually deleted, which is also permanent. If no action is taken the service principal will be permanently deleted 30 days after deleting the application. ### To permanently delete an application |
active-directory | Optional Claims | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/develop/optional-claims.md | + + Title: Provide optional claims to your app +description: How to add optional claims to the SAML 2.0 and JSON Web Tokens (JWT) tokens issued by Microsoft identity platform. ++++++ Last updated : 03/28/2023++++++# Provide optional claims to your app ++You can use optional claims to: ++- Select claims to include in tokens for your application. +- Change the behavior of certain claims that the Microsoft identity platform returns in tokens. +- Add and access custom claims for your application. ++For the lists of standard claims, see the [access token](access-tokens.md) and [id_token](id-tokens.md) claims documentation. ++While optional claims are supported in both v1.0 and v2.0 format tokens and SAML tokens, they provide most of their value when moving from v1.0 to v2.0. In the Microsoft identity platform, smaller token sizes are used to ensure optimal performance by clients. As a result, several claims formerly included in the access and ID tokens are no longer present in v2.0 tokens and must be asked for specifically on a per-application basis. ++| Account Type | v1.0 tokens | v2.0 tokens | +|--|-|-| +| Personal Microsoft account | N/A | Supported | +| Azure AD account | Supported | Supported | ++## v1.0 and v2.0 optional claims set ++The set of optional claims available by default for applications to use are listed in the following table. You can use custom data in extension attributes and directory extensions to add optional claims for your application. When you add claims to the access token, the claims apply to access tokens requested *for* the application (a web API), not claims requested *by* the application. No matter how the client accesses your API, the right data is present in the access token that's used to authenticate against your API. ++> [!NOTE] +>The majority of these claims can be included in JWTs for v1.0 and v2.0 tokens, but not SAML tokens, except where noted in the Token Type column. Consumer accounts support a subset of these claims, marked in the User Type column. Many of the claims listed don't apply to consumer users (they have no tenant, so `tenant_ctry` has no value). ++The following table lists the v1.0 and v2.0 optional claim set. ++| Name | Description | Token Type | User Type | Notes | +||-||--|-| +| `acct` | Users account status in tenant | JWT, SAML | | If the user is a member of the tenant, the value is `0`. If they're a guest, the value is `1`. | +| `auth_time` | Time when the user last authenticated. | JWT | | | +| `ctry` | User's country/region | JWT | | This claim is returned if it's present and the value of the field is a standard two-letter country/region code, such as FR, JP, SZ, and so on. | +| `email` | The reported email address for this user | JWT, SAML | MSA, Azure AD | This value is included if the user is a guest in the tenant. For managed users (the users inside the tenant), it must be requested through this optional claim or, on v2.0 only, with the OpenID scope. This value isn't guaranteed to be correct, and is mutable over time - never use it for authorization or to save data for a user. For more information, see [Secure applications and APIs by validating claims](claims-validation.md). If you require an addressable email address in your app, request this data from the user directly, using this claim as a suggestion or prefill in your UX. | +| `fwd` | IP address | JWT | | Adds the original IPv4 address of the requesting client (when inside a VNET). | +| `groups` | Optional formatting for group claims | JWT, SAML | | The `groups` claim is used with the GroupMembershipClaims setting in the [application manifest](reference-app-manifest.md), which must be set as well. | +| `idtyp` | Token type | JWT access tokens | Special: only in app-only access tokens | The value is `app` when the token is an app-only token. This claim is the most accurate way for an API to determine if a token is an app token or an app+user token. | +| `login_hint` | Login hint | JWT | MSA, Azure AD | An opaque, reliable login hint claim that's base64 encoded. Don't modify this value. This claim is the best value to use for the `login_hint` OAuth parameter in all flows to get SSO. It can be passed between applications to help them silently SSO as well - application A can sign in a user, read the `login_hint` claim, and then send the claim and the current tenant context to application B in the query string or fragment when the user selects on a link that takes them to application B. To avoid race conditions and reliability issues, the `login_hint` claim *doesn't* include the current tenant for the user, and defaults to the user's home tenant when used. In a guest scenario where the user is from another tenant, a tenant identifier must be provided in the sign-in request. and pass the same to apps you partner with. This claim is intended for use with your SDK's existing `login_hint` functionality, however that it exposed. | +| `sid` | Session ID, used for per-session user sign out | JWT | Personal and Azure AD accounts. | | +| `tenant_ctry` | Resource tenant's country/region | JWT | | Same as `ctry` except set at a tenant level by an admin. Must also be a standard two-letter value. | +| `tenant_region_scope` | Region of the resource tenant | JWT | | | +| `upn` | UserPrincipalName | JWT, SAML | | An identifier for the user that can be used with the `username_hint` parameter. Not a durable identifier for the user and shouldn't be used for authorization or to uniquely identity user information (for example, as a database key). Instead, use the user object ID (`oid`) as a database key. For more information, see [Secure applications and APIs by validating claims](claims-validation.md). Users signing in with an [alternate login ID](../authentication/howto-authentication-use-email-signin.md) shouldn't be shown their User Principal Name (UPN). Instead, use the following ID token claims for displaying sign-in state to the user: `preferred_username` or `unique_name` for v1 tokens and `preferred_username` for v2 tokens. Although this claim is automatically included, you can specify it as an optional claim to attach other properties to modify its behavior in the guest user case. You should use the `login_hint` claim for `login_hint` use - human-readable identifiers like UPN are unreliable. | +| `verified_primary_email` | Sourced from the user's PrimaryAuthoritativeEmail | JWT | | | +| `verified_secondary_email` | Sourced from the user's SecondaryAuthoritativeEmail | JWT | | | +| `vnet` | VNET specifier information. | JWT | | | +| `xms_cc` | Client Capabilities | JWT | Azure AD | Indicates whether the client application that acquired the token is capable of handling claims challenges. Service applications (resource servers) can make use of this claim to authorize access to protected resources. This claim is commonly used in Conditional Access and Continuous Access Evaluation scenarios. The service application that issues the token controls the presence of the claim in it. This optional claim should be configured as part of the service app's registration. For more information, see [Claims challenges, claims requests and client capabilities](claims-challenge.md?tabs=dotnet). | +| `xms_pdl` | Preferred data location | JWT | | For Multi-Geo tenants, the preferred data location is the three-letter code showing the geographic region the user is in. For more information, see the [Azure AD Connect documentation about preferred data location](../hybrid/how-to-connect-sync-feature-preferreddatalocation.md). | +| `xms_pl` | User preferred language | JWT | | The user's preferred language, if set. Sourced from their home tenant, in guest access scenarios. Formatted LL-CC ("en-us"). | +| `xms_tpl` | Tenant preferred language| JWT | | The resource tenant's preferred language, if set. Formatted LL ("en"). | +| `ztdid` | Zero-touch Deployment ID | JWT | | The device identity used for `Windows AutoPilot`. | ++> [!WARNING] +> Never use `email` or `upn` claim values to store or determine whether the user in an access token should have access to data. Mutable claim values like these can change over time, making them insecure and unreliable for authorization. ++## v2.0-specific optional claims set ++These claims are always included in v1.0 tokens, but not included in v2.0 tokens unless requested. These claims are only applicable for JWTs (ID tokens and access tokens). ++| JWT Claim | Name | Description | Notes | +|--||-|-| +| `ipaddr` | IP Address | The IP address the client logged in from. | | +| `onprem_sid` | On-premises Security Identifier | | | +| `pwd_exp` | Password Expiration Time | The number of seconds after the time in the `iat` claim at which the password expires. This claim is only included when the password is expiring soon (as defined by "notification days" in the password policy). | | +| `pwd_url` | Change Password URL | A URL that the user can visit to change their password. This claim is only included when the password is expiring soon (as defined by "notification days" in the password policy). | | +| `in_corp` | Inside Corporate Network | Signals if the client is logging in from the corporate network. If they're not, the claim isn't included. | Based off of the [trusted IPs](../authentication/howto-mfa-mfasettings.md#trusted-ips) settings in MFA. | +| `family_name` | Last Name | Provides the last name, surname, or family name of the user as defined in the user object. For example, `"family_name":"Miller"`. | Supported in MSA and Azure AD. Requires the `profile` scope. | +| `given_name` | First name | Provides the first or "given" name of the user, as set on the user object. For example, `"given_name": "Frank"`. | Supported in MSA and Azure AD. Requires the `profile` scope. | +| `upn` | User Principal Name | An identifier for the user that can be used with the `username_hint` parameter. Not a durable identifier for the user and shouldn't be used for authorization or to uniquely identity user information (for example, as a database key). For more information, see [Secure applications and APIs by validating claims](claims-validation.md). Instead, use the user object ID (`oid`) as a database key. Users signing in with an [alternate login ID](../authentication/howto-authentication-use-email-signin.md) shouldn't be shown their User Principal Name (UPN). Instead, use the following `preferred_username` claim for displaying sign-in state to the user. | Requires the `profile` scope. | ++## v1.0-specific optional claims set ++Some of the improvements of the v2 token format are available to apps that use the v1 token format, as they help improve security and reliability. These improvements only apply to JWTs, not SAML tokens. ++| JWT Claim | Name | Description | Notes | +|--||-|-| +|`aud` | Audience | Always present in JWTs, but in v1 access tokens it can be emitted in various ways - any appID URI, with or without a trailing slash, and the client ID of the resource. This randomization can be hard to code against when performing token validation. Use `additionalProperties` for this claim to ensure it's always set to the resource's client ID in v1 access tokens. | v1 JWT access tokens only| +|`preferred_username` | Preferred username | Provides the preferred username claim within v1 tokens. This claim makes it easier for apps to provide username hints and show human readable display names, regardless of their token type. It's recommended that you use this optional claim instead of using, `upn` or `unique_name`. | v1 ID tokens and access tokens | ++### `additionalProperties` of optional claims ++Some optional claims can be configured to change the way the claim is returned. These `additionalProperties` are mostly used to help migration of on-premises applications with different data expectations. For example, `include_externally_authenticated_upn_without_hash` helps with clients that can't handle hash marks (`#`) in the UPN. ++| Property name | `additionalProperty` name | Description | +||--|-| +| `upn` | | Can be used for both SAML and JWT responses, and for v1.0 and v2.0 tokens. | +| | `include_externally_authenticated_upn` | Includes the guest UPN as stored in the resource tenant. For example, `foo_hometenant.com#EXT#@resourcetenant.com`. | +| | `include_externally_authenticated_upn_without_hash` | Same as listed previously, except that the hash marks (`#`) are replaced with underscores (`_`), for example `foo_hometenant.com_EXT_@resourcetenant.com`. | +| `aud` | | In v1 access tokens, this claim is used to change the format of the `aud` claim. This claim has no effect in v2 tokens or either version's ID tokens, where the `aud` claim is always the client ID. Use this configuration to ensure that your API can more easily perform audience validation. Like all optional claims that affect the access token, the resource in the request must set this optional claim, since resources own the access token. | +| | `use_guid` | Emits the client ID of the resource (API) in GUID format as the `aud` claim always instead of it being runtime dependent. For example, if a resource sets this flag, and its client ID is `bb0a297b-6a42-4a55-ac40-09a501456577`, any app that requests an access token for that resource receives an access token with `aud` : `bb0a297b-6a42-4a55-ac40-09a501456577`. Without this claim set, an API could get tokens with an `aud` claim of `api://MyApi.com`, `api://MyApi.com/`, `api://myapi.com/AdditionalRegisteredField` or any other value set as an app ID URI for that API, and the client ID of the resource. | ++#### `additionalProperties` example ++```json +"optionalClaims": { + "idToken": [ + { + "name": "upn", + "essential": false, + "additionalProperties": [ + "include_externally_authenticated_upn" + ] + } + ] +} +``` ++This `optionalClaims` object causes the ID token returned to the client to include a `upn` claim with the other home tenant and resource tenant information. The `upn` claim is only changed in the token if the user is a guest in the tenant (that uses a different IDP for authentication). ++## Configure optional claims ++> [!IMPORTANT] +> Access tokens are **always** generated using the manifest of the resource, not the client. In the request `...scope=https://graph.microsoft.com/user.read...`, the resource is the Microsoft Graph API. The access token is created using the Microsoft Graph API manifest, not the client's manifest. Changing the manifest for your application never causes tokens for the Microsoft Graph API to look different. To validate that your `accessToken` changes are in effect, request a token for your application, not another app. ++You can configure optional claims for your application through the Azure portal or application manifest. ++1. Go to the [Azure portal](https://portal.azure.com). +1. Search for and select **Azure Active Directory**. +1. Under **Manage**, select **App registrations**. +1. Choose the application for which you want to configure optional claims based on your scenario and desired outcome. +1. Under **Manage**, select **Token configuration**. + - The UI option **Token configuration** blade isn't available for apps registered in an Azure AD B2C tenant, which can be configured by modifying the application manifest. For more information, see [Add claims and customize user input using custom policies in Azure Active Directory B2C](../../active-directory-b2c/configure-user-input.md) ++Configure claims using the manifest: ++1. Select **Add optional claim**. +1. Select the token type you want to configure. +1. Select the optional claims to add. +1. Select **Add**. +1. Under **Manage**, select **Manifest**. A web-based manifest editor opens, allowing you to edit the manifest. Optionally, you can select **Download** and edit the manifest locally, and then use **Upload** to reapply it to your application. ++ The following application manifest entry adds the `auth_time`, `ipaddr`, and `upn` optional claims to ID, access, and SAML tokens. ++ ```json + "optionalClaims": { + "idToken": [ + { + "name": "auth_time", + "essential": false + } + ], + "accessToken": [ + { + "name": "ipaddr", + "essential": false + } + ], + "saml2Token": [ + { + "name": "upn", + "essential": false + }, + { + "name": "extension_ab603c56068041afb2f6832e2a17e237_skypeId", + "source": "user", + "essential": false + } + ] + } + ``` ++1. When finished, select **Save**. Now the specified optional claims are included in the tokens for your application. ++The `oprionalClaims` object declares the optional claims requested by an application. An application can configure optional claims that are returned in ID tokens, access tokens, and SAML 2 tokens. The application can configure a different set of optional claims to be returned in each token type. ++| Name | Type | Description | +|||-| +| `idToken` | Collection | The optional claims returned in the JWT ID token. | +| `accessToken` | Collection | The optional claims returned in the JWT access token. | +| `saml2Token` | Collection | The optional claims returned in the SAML token. | ++If supported by a specific claim, you can also modify the behavior of the optional claim using the `additionalProperties` field. ++| Name | Type | Description | +|||-| +| `name` | Edm.String | The name of the optional claim. | +| `source` | Edm.String | The source (directory object) of the claim. There are predefined claims and user-defined claims from extension properties. If the source value is null, the claim is a predefined optional claim. If the source value is user, the value in the name property is the extension property from the user object. | +| `essential` | Edm.Boolean | If the value is true, the claim specified by the client is necessary to ensure a smooth authorization experience for the specific task requested by the end user. The default value is false. | +| `additionalProperties` | Collection (Edm.String) | Other properties of the claim. If a property exists in this collection, it modifies the behavior of the optional claim specified in the name property. | ++## Configure directory extension optional claims ++In addition to the standard optional claims set, you can also configure tokens to include Microsoft Graph extensions. For more information, see [Add custom data to resources using extensions](/graph/extensibility-overview). ++Optional claims support extension attributes and directory extensions. This feature is useful for attaching more user information that your app can use. For example, other identifiers or important configuration options that the user has set. If your application manifest requests a custom extension and an MSA user logs in to your app, these extensions aren't returned. ++### Directory extension formatting ++When configuring directory extension optional claims using the application manifest, use the full name of the extension (in the format: `extension_<appid>_<attributename>`). The `<appid>` is the stripped version of the appId (or Client ID) of the application requesting the claim. ++Within the JWT, these claims are emitted with the following name format: `extn.<attributename>`. Within the SAML tokens, these claims are emitted with the following URI format: `http://schemas.microsoft.com/identity/claims/extn.<attributename>` ++## Configure groups optional claims ++This section covers the configuration options under optional claims for changing the group attributes used in group claims from the default group objectID to attributes synced from on-premises Windows Active Directory. You can configure groups optional claims for your application through the Azure portal or application manifest. Group optional claims are only emitted in the JWT for user principals. Service principals aren't included in group optional claims emitted in the JWT. ++> [!IMPORTANT] +> The number of groups emitted in a token are limited to 150 for SAML assertions and 200 for JWT, including nested groups. For more information about group limits and important caveats for group claims from on-premises attributes, see [Configure group claims for applications with Azure AD](../hybrid/how-to-connect-fed-group-claims.md). ++Complete the following steps to configure groups optional claims using the Azure portal: ++1. Sign in to the [Azure portal](https://portal.azure.com). +1. After you've authenticated, choose your tenant by selecting it from the top-right corner of the page. +1. Search for and select **Azure Active Directory**. +1. Under **Manage**, select **App registrations**. +1. Select the application you want to configure optional claims for in the list. +1. Under **Manage**, select **Token configuration**. +1. Select **Add groups claim**. +1. Select the group types to return (**Security groups**, or **Directory roles**, **All groups**, and/or **Groups assigned to the application**): + - The **Groups assigned to the application** option includes only groups assigned to the application. The **Groups assigned to the application** option is recommended for large organizations due to the group number limit in token. To change the groups assigned to the application, select the application from the **Enterprise applications** list. Select **Users and groups** and then **Add user/group**. Select the group(s) you want to add to the application from **Users and groups**. + - The **All Groups** option includes **SecurityGroup**, **DirectoryRole**, and **DistributionList**, but not **Groups assigned to the application**. +1. Optional: select the specific token type properties to modify the groups claim value to contain on premises group attributes or to change the claim type to a role. +1. Select **Save**. ++Complete the following steps to configure groups optional claims through the application manifest: ++1. Sign in to the [Azure portal](https://portal.azure.com). +1. After you've authenticated, choose your Azure AD tenant by selecting it from the top-right corner of the page. +1. Search for and select **Azure Active Directory**. +1. Select the application you want to configure optional claims for in the list. +1. Under **Manage**, select **Manifest**. +1. Add the following entry using the manifest editor: ++ The valid values are: ++ - "All" (this option includes SecurityGroup, DirectoryRole, and DistributionList) + - "SecurityGroup" + - "DirectoryRole" + - "ApplicationGroup" (this option includes only groups that are assigned to the application) ++ For example: ++ ```json + "groupMembershipClaims": "SecurityGroup" + ``` ++ By default group object IDs are emitted in the group claim value. To modify the claim value to contain on premises group attributes, or to change the claim type to role, use the `optionalClaims` configuration as follows: ++1. Set group name configuration optional claims. ++ If you want groups in the token to contain the on premises group attributes in the optional claims section, specify which token type optional claim should be applied to. You also specify the name of optional claim requested and any other properties desired. + + Multiple token types can be listed: ++ - idToken for the OIDC ID token + - accessToken for the OAuth access token + - Saml2Token for SAML tokens. ++ The Saml2Token type applies to both SAML1.1 and SAML2.0 format tokens. ++ For each relevant token type, modify the groups claim to use the `optionalClaims` section in the manifest. The `optionalClaims` schema is as follows: ++ ```json + { + "name": "groups", + "source": null, + "essential": false, + "additionalProperties": [] + } + ``` ++ | Optional claims schema | Value | + ||-| + | `name` | Must be `groups` | + | `source` | Not used. Omit or specify null. | + | `essential` | Not used. Omit or specify false. | + | `additionalProperties` | List of other properties. Valid options are `sam_account_name`, `dns_domain_and_sam_account_name`, `netbios_domain_and_sam_account_name`, `emit_as_roles` and `cloud_displayname`. | ++ In `additionalProperties` only one of `sam_account_name`, `dns_domain_and_sam_account_name`, `netbios_domain_and_sam_account_name` are required. If more than one is present, the first is used and any others ignored. You can also add `cloud_displayname` to emit display name of the cloud group. This option works only when `groupMembershipClaims` is set to `ApplicationGroup`. ++ Some applications require group information about the user in the role claim. To change the claim type from a group claim to a role claim, add `emit_as_roles` to `additionalProperties`. The group values are emitted in the role claim. ++ If `emit_as_roles` is used, any application roles configured that the user is assigned aren't in the role claim. ++The following examples show the manifest configuration for group claims: ++Emit groups as group names in OAuth access tokens in `dnsDomainName\sAMAccountName` format. ++```json +"optionalClaims": { + "accessToken": [ + { + "name": "groups", + "additionalProperties": [ + "dns_domain_and_sam_account_name" + ] + } + ] +} +``` ++Emit group names to be returned in `netbiosDomain\sAMAccountName` format as the roles claim in SAML and OIDC ID tokens. ++```json +"optionalClaims": { + "saml2Token": [ + { + "name": "groups", + "additionalProperties": [ + "netbios_domain_and_sam_account_name", + "emit_as_roles" + ] + } + ], + "idToken": [ + { + "name": "groups", + "additionalProperties": [ + "netbios_domain_and_sam_account_name", + "emit_as_roles" + ] + } + ] +} +``` ++Emit group names in the format of `sam_account_name` for on-premises synced groups and `cloud_display` name for cloud groups in SAML and OIDC ID tokens for the groups assigned to the application. ++```json +"groupMembershipClaims": "ApplicationGroup", +"optionalClaims": { + "saml2Token": [ + { + "name": "groups", + "additionalProperties": [ + "sam_account_name", + "cloud_displayname" + ] + } + ], + "idToken": [ + { + "name": "groups", + "additionalProperties": [ + "sam_account_name", + "cloud_displayname" + ] + } + ] +} +``` ++## Optional claims example ++There are multiple options available for updating the properties on an application's identity configuration to enable and configure optional claims: ++- You can use the Azure portal +- You can use the manifest. +- It's also possible to write an application that uses the [Microsoft Graph API](/graph/use-the-api) to update your application. The [OptionalClaims](/graph/api/resources/optionalclaims) type in the Microsoft Graph API reference guide can help you with configuring the optional claims. ++In the following example, the Azure portal and manifest are used to add optional claims to the access, ID, and SAML tokens intended for your application. Different optional claims are added to each type of token that the application can receive: ++- The ID tokens contain the UPN for federated users in the full form (`<upn>_<homedomain>#EXT#@<resourcedomain>`). +- The access tokens that other clients request for this application includes the `auth_time` claim. +- The SAML tokens contain the `skypeId` directory schema extension (in this example, the app ID for this app is `ab603c56068041afb2f6832e2a17e237`). The SAML token exposes the Skype ID as `extension_ab603c56068041afb2f6832e2a17e237_skypeId`. ++Configure claims in the Azure portal: ++1. Sign in to the [Azure portal](https://portal.azure.com). +1. After you've authenticated, choose your tenant by selecting it from the top-right corner of the page. +1. Search for and select **Azure Active Directory**. +1. Under **Manage**, select **App registrations**. +1. Find the application you want to configure optional claims for in the list and select it. +1. Under **Manage**, select **Token configuration**. +1. Select **Add optional claim**, select the **ID** token type, select **upn** from the list of claims, and then select **Add**. +1. Select **Add optional claim**, select the **Access** token type, select **auth_time** from the list of claims, then select **Add**. +1. From the Token Configuration overview screen, select the pencil icon next to **upn**, select the **Externally authenticated** toggle, and then select **Save**. +1. Select **Add optional claim**, select the **SAML** token type, select **extn.skypeID** from the list of claims (only applicable if you've created an Azure AD user object called skypeID), and then select **Add**. ++Configure claims in the manifest: ++1. Sign in to the [Azure portal](https://portal.azure.com). +1. After you've authenticated, choose your tenant by selecting it from the top-right corner of the page. +1. Search for and select **Azure Active Directory**. +1. Find the application you want to configure optional claims for in the list and select it. +1. Under **Manage**, select **Manifest** to open the inline manifest editor. +1. You can directly edit the manifest using this editor. The manifest follows the schema for the [Application entity](./reference-app-manifest.md), and automatically formats the manifest once saved. New elements are added to the `optionalClaims` property. ++ ```json + "optionalClaims": { + "idToken": [ + { + "name": "upn", + "essential": false, + "additionalProperties": [ + "include_externally_authenticated_upn" + ] + } + ], + "accessToken": [ + { + "name": "auth_time", + "essential": false + } + ], + "saml2Token": [ + { + "name": "extension_ab603c56068041afb2f6832e2a17e237_skypeId", + "source": "user", + "essential": true + } + ] + } + ``` ++1. When you're finished updating the manifest, select **Save** to save the manifest. ++## See also ++- [Application manifest](reference-app-manifest.md) +- [ID tokens](id-tokens.md) +- [Access tokens](access-tokens.md) ++## Next steps ++- Learn more about the [tokens and claims](security-tokens.md) in the Microsoft identity platform. |
active-directory | Schema Extensions | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/develop/schema-extensions.md | + + Title: Directory extension attributes in claims +description: Describes directory extension attributes that are used for sending user data to applications in token claims. ++++++++ Last updated : 05/26/2023++++# Directory extension attributes in claims ++Directory extension attributes provide a way to store more data on directory objects such as users. Only extension attributes on user objects can be used for emitting claims to applications. This article describes how to use directory extension attributes for sending user data to applications in token claims. ++> [!NOTE] +> Microsoft Graph provides three other extension mechanisms to customize Graph objects. These are the extension attributes 1-15, open extensions, and schema extensions. See the [Microsoft Graph documentation](/graph/extensibility-overview) for details. Data stored on Microsoft Graph objects using open and schema extensions aren't available as sources for claims in tokens. ++Directory extension attributes are always associated with an application in the tenant. The name of the directory attribute includes the *appId* of the application in its name. ++The identifier for a directory extension attribute is of the form `extension_xxxxxxxxx_AttributeName`. Where `xxxxxxxxx` is the *appId* of the application the extension was defined for, with only characters 0-9 and A-Z. ++## Register and use directory extensions ++Register directory extension attributes in one of the following ways: ++- Configure Azure AD Connect to create them and to sync data into them from on-premises. See [Azure AD Connect Sync Directory Extensions](../hybrid/how-to-connect-sync-feature-directory-extensions.md). +- Use Microsoft Graph to register, set the values of, and read from [directory extensions](/graph/extensibility-overview#directory-azure-ad-extensions). [PowerShell cmdlets](/powershell/azure/active-directory/using-extension-attributes-sample) are also available. ++### Emit claims with data from Azure AD Connect ++Directory extension attributes created and synced using Azure AD Connect are always associated with the application ID used by Azure AD Connect. These attributes can be used as a source for claims both by configuring them as claims in **Enterprise Applications** configuration in the Portal. After a directory extension attribute is created using AD Connect, it's displayed in the SAML SSO claims configuration. ++### Emit claims using Graph or PowerShell ++If a directory extension attribute is registered for using Microsoft Graph or PowerShell, the application can be configured to receive data in that attribute when the user signs in. The application can be configured to receive data in directory extensions that are registered on the application using [optional claims](optional-claims.md) that can be set in the application manifest. ++Multi-tenant applications can then register directory extension attributes for their own use. When the application is provisioned into a tenant, the associated directory extensions become available and consumed for users in that tenant. After the directory extension is available, it can be used to store and retrieve data using Microsoft Graph. The directory extension can also map to claims in tokens the Microsoft identity platform emits to applications. ++If an application needs to send claims with data from an extension attribute that's registered on a different application, a [claims mapping policy](active-directory-claims-mapping.md) must be used to map the extension attribute to the claim. ++A common pattern for managing directory extension attributes is to register an application specifically for all the directory extensions that you need. When you use this type of application, all the extensions have the same appID in their name. ++For example, the following code shows a claims-mapping policy to emit a single claim from a directory extension attribute in an OAuth/OIDC token: ++```json +{ + "ClaimsMappingPolicy": { + "Version": 1, + "IncludeBasicClaimSet": "false", + "ClaimsSchema": [{ + "Source": "User", + "ExtensionID": "extension_xxxxxxx_test", + "JWTClaimType": "http://schemas.contoso.com/identity/claims/exampleclaim" + }, + ] + } +} +``` ++Where `xxxxxxx` is the appID (or Client ID) of the application that the extension was registered with. ++> [!WARNING] +> When you define a claims mapping policy for a directory extension attribute, use the `ExtensionID` property instead of the `ID` property within the body of the `ClaimsSchema` array, as shown in the previous example. ++> [!TIP] +> Case consistency is important when you set directory extension attributes on objects. Extension attribute names aren't case sensitive when being set up, but they are case sensitive when being read from the directory by the token service. If an extension attribute is set on a user object with the name "LegacyId" and on another user object with the name "legacyid", when the attribute is mapped to a claim using the name "LegacyId" the data is successfully retrieved and the claim included in the token for the first user but not the second. ++## Next steps +- Learn how to [customize claims emitted in tokens for a specific app](active-directory-claims-mapping.md). |
active-directory | Concept Planning Your Solution | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/concept-planning-your-solution.md | Adding secure sign-in to your app and setting up a customer identity and access This article describes each of these steps and outlines important planning considerations. In the following table, select a **Step** for details and planning considerations, or go directly to the **How-to guides**. - | Step | How-to guides | |||-| **[Step 1: Create a customer tenant](#step-1-create-a-customer-tenant)** | • [Create a customer tenant](how-to-create-customer-tenant-portal.md)</br>• [Or start a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl) | +|**[Step 1: Create a customer tenant](#step-1-create-a-customer-tenant)** | • [Create a customer tenant](how-to-create-customer-tenant-portal.md)</br>• <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">Or start a free trial</a> | |**[Step 2: Register your application](#step-2-register-your-application)** | • [Register your application](how-to-register-ciam-app.md) | |**[Step 3: Integrate a sign-in flow with your app](#step-3-integrate-a-sign-in-flow-with-your-app)** | • [Create a user flow](how-to-user-flow-sign-up-sign-in-customers.md) </br>• [Add your app to the user flow](how-to-user-flow-add-application.md) | |**[Step 4: Customize and secure your sign-in](#step-4-customize-and-secure-your-sign-in)** | • [Customize branding](concept-branding-customers.md) </br>• [Add identity providers](concept-authentication-methods-customers.md) </br>• [Collect attributes during sign-up](how-to-define-custom-attributes.md)</br>• [Add attributes to the token](how-to-add-attributes-to-token.md) </br>• [Add multifactor authentication (MFA)](concept-security-customers.md) | |
active-directory | How To Browserless App Dotnet Sample Sign In | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-browserless-app-dotnet-sample-sign-in.md | This how-to guide uses a sample ASP.NET browserless app to show how to add authe - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). +- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. ## Register the headless app |
active-directory | How To Browserless App Dotnet Sign In Overview | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-browserless-app-dotnet-sign-in-overview.md | The article series is broken down into the following steps: - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial).+- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. ## OAuth 2.0 device authorization grant flow |
active-directory | How To Browserless App Node Sample Sign In | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-browserless-app-node-sample-sign-in.md | In this article, you complete the following tasks: - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). +- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. ## Register the browserless app |
active-directory | How To Browserless App Node Sign In Overview | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-browserless-app-node-sign-in-overview.md | The device code flow is an OAuth2.0 grant flow that allows users to sign in to i - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-hub-free-trial). +- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. If you want to run a sample Node.js browserless application rather than building it from scratch, complete the steps in [Sign in users in a sample Node.js browserless application by using the Device Code flow](how-to-browserless-app-node-sample-sign-in.md) |
active-directory | How To Create Customer Tenant Portal | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-create-customer-tenant-portal.md | In this article, you learn how to: ## Prerequisites -- An Azure subscription. If you don't have one, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.+- An Azure subscription. If you don't have one, create a <a href="https://azure.microsoft.com/free/?WT.mc_id=A261C142F" target="_blank">free account</a> before you begin. - An Azure account that's been assigned at least the [Contributor](/azure/role-based-access-control/built-in-roles#contributor) role scoped to the subscription or to a resource group within the subscription.-- If you don't have an Azure account, sign up for a [30-day free trial](quickstart-trial-setup.md). ## Create a new customer tenant |
active-directory | How To Daemon Node Call Api Overview | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-daemon-node-call-api-overview.md | The application you build uses [Microsoft Authentication Library (MSAL) for Node - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). +- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. If you want to run a sample Node.js daemon application to get a feel of how things work, complete the steps in [Call an API in a sample Node.js daemon application](how-to-daemon-node-sample-call-api.md). |
active-directory | How To Daemon Node Sample Call Api | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-daemon-node-sample-call-api.md | A daemon app uses the standard [OAuth 2.0 client credentials grant](../../develo - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl).+- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. ## Register a daemon application and a web API |
active-directory | How To Desktop App Electron Sample Sign In | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-desktop-app-electron-sample-sign-in.md | In this article, you do the following tasks: - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). -+- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. <!--Awaiting this link http://developer.microsoft.com/identity/customers to go live on Developer hub--> ## Register desktop app |
active-directory | How To Desktop App Maui Sample Sign In | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-desktop-app-maui-sample-sign-in.md | In this article, you do the following tasks: - [Visual Studio Code](https://code.visualstudio.com/download) with the MAUI workload installed: - [Instructions for Windows](/dotnet/maui/get-started/installation?tabs=vswin) - [Instructions for macOS](/dotnet/maui/get-started/installation?tabs=vsmac)-- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl).+- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. ## Register .NET MAUI desktop application |
active-directory | How To Multifactor Authentication Customers | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-multifactor-authentication-customers.md | +- An Azure AD customer tenant (if you don't have a tenant, you can start a <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">free trial</a>. - A [sign-up and sign-in user flow](how-to-user-flow-sign-up-sign-in-customers.md). - An app that's registered in your customer tenant, added to the sign-up and sign-in user flow, and updated to point to the user flow for authentication. - An account with Conditional Access Administrator, Security Administrator, or Global Administrator privileges to configure Conditional Access policies and MFA. |
active-directory | How To Register Ciam App | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-register-ciam-app.md | In this article, youΓÇÖll learn how to register an application in your customer ## Prerequisites -- An Azure account that has an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).-- Your Azure AD for customers tenant. If you don't already have one, sign up for a [free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl).+- An Azure account that has an active subscription. <a href="https://azure.microsoft.com/free/?WT.mc_id=A261C142F" target="_blank">Create an account for free</a>. +- Your Azure AD for customers tenant. If you don't already have one, sign up for a <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">free trial</a>. ## Choose your app type |
active-directory | How To Single Page App Vanillajs Configure Authentication | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-single-page-app-vanillajs-configure-authentication.md | description: Learn how to configure authentication for a vanilla JavaScript sing - - Previously updated : 05/23/2023- Last updated : 05/25/2023 #Customer intent: As a developer, I want to learn how to configure vanilla JavaScript single-page app (SPA) to sign in and sign out users with my Azure Active Directory (AD) for customers tenant. In the previous article, you created a vanilla JavaScript (JS) single-page appli The application uses the [Implicit Grant Flow](../../develop/v2-oauth2-implicit-grant-flow.md) to authenticate users. The Implicit Grant Flow is a browser-based flow that doesn't require a back-end server. The flow redirects the user to the sign-in page, where the user signs in and consents to the permissions that are being requested by the application. The purpose of *authConfig.js* is to configure the authentication flow. -1. In your IDE, create a new folder and name it **public** -1. In the *public* folder, create a new file and name it *authConfig.js*. -1. Open *authConfig.js* and add the following code snippet: +1. In the *public* folder, open *authConfig.js* and add the following code snippet: ```javascript /** The application uses the [Implicit Grant Flow](../../develop/v2-oauth2-implicit- } ``` -1. Find the `Enter_the_Application_Id_Here` value and replace it with the application ID (clientId) of the app you registered in the Microsoft Entra admin center. +1. Find the `Enter_the_Application_Id_Here` value and replace it with the **application ID (clientId)** of the app you registered in the Microsoft Entra admin center. 1. In **Authority**, find `Enter_the_Tenant_Subdomain_Here` and replace it with the subdomain of your tenant. For example, if your tenant primary domain is *caseyjensen@onmicrosoft.com*, the value you should enter is *casyjensen*. 1. Save the file. ## Creating the redirection file -A redirection file is required to handle the response from the sign-in page. The redirection file is used to extract the access token from the URL fragment and use it to call the protected API. +A redirection file is required to handle the response from the sign-in page. The redirection file is used to extract the access token from the URL fragment and use it to call the protected API. The redirection file is also used to handle errors that occur during the authentication process. -1. In the *public* folder, create a new file and name it *authRedirect.js*. -1. Open *authRedirect.js* and add the following code snippet: +1. In the *public* folder, open *authRedirect.js* and add the following code snippet: ```javascript // Create the main myMSALObj instance A redirection file is required to handle the response from the sign-in page. The ## Creating the authPopup.js file -The application uses *authPopup.js* to handle the authentication flow when the user signs in using the pop-up window. The pop-up window is used when the user is already signed in and the application needs to get an access token for a different resource. +The application uses *authPopup.js* to handle the authentication flow when the user signs in using the pop-up window. The pop-up window is used when the user is already signed in and the application needs to get an access token for a different resource. -1. In the *public* folder, create a new file and name it *authPopup.js*. -1. Open *authPopup.js* and add the following code snippet: +1. In the *public* folder, open *authPopup.js* and add the following code snippet: ```javascript // Create the main myMSALObj instance |
active-directory | How To Single Page App Vanillajs Prepare App | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-single-page-app-vanillajs-prepare-app.md | Title: Prepare a vanilla JavaScript single-page app for authentication + Title: Prepare a vanilla JavaScript single-page application for authentication description: Learn how to prepare a vanilla JavaScript single-page app (SPA) for authentication and authorization with your Azure Active Directory (AD) for customers tenant. - Previously updated : 05/23/2023- Last updated : 05/25/2023 #Customer intent: As a developer, I want to learn how to configure vanilla JavaScript single-page app (SPA) to sign in and sign out users with my Azure AD for customers tenant. -# Prepare a Single-page application for authentication +# Prepare a vanilla JavaScript single-page application for authentication -After registering an application and creating a user flow in a Azure Active Directory (AD) for customers tenant, a vanilla JavaScript (JS) single-page application (SPA) can be created using an integrated development environment (IDE) or a code editor. In this article, you'll create a vanilla JS SPA and a server to host the application. +After registering an application and creating a user flow in an Azure Active Directory (AD) for customers tenant, a vanilla JavaScript (JS) single-page application (SPA) can be created using an integrated development environment (IDE) or a code editor. In this article, you'll create a vanilla JS SPA and a server to host the application. ## Prerequisites -- Completion of the prerequisites and steps in [Sign in users to a vanilla JS Single-page application](how-to-single-page-app-vanillajs-prepare-tenant.md).-- Although any IDE that supports vanilla JS applications can be used, **Visual Studio Code** is used for this guide. It can be downloaded from the [Downloads](https://visualstudio.microsoft.com/downloads) page.+- Completion of the prerequisites and steps in [Sign in users to a vanilla JS single-page application](how-to-single-page-app-vanillajs-prepare-tenant.md). +- Although any IDE that supports vanilla JS applications can be used, **Visual Studio Code** is recommended for this guide. It can be downloaded from the [Downloads](https://visualstudio.microsoft.com/downloads) page. - [Node.js](https://nodejs.org/en/download/). ## Create a new vanilla JS project and install dependencies After registering an application and creating a user flow in a Azure Active Dire ```powershell npm init -y ```+1. Create additional folders and files to achieve the following project structure: ++ ``` + ΓööΓöÇΓöÇ public + ΓööΓöÇΓöÇ authConfig.js + ΓööΓöÇΓöÇ authPopup.js + ΓööΓöÇΓöÇ authRedirect.js + ΓööΓöÇΓöÇ https://docsupdatetracker.net/index.html + ΓööΓöÇΓöÇ signout.html + ΓööΓöÇΓöÇ styles.css + ΓööΓöÇΓöÇ ui.js + ΓööΓöÇΓöÇ server.js + ``` + +## Install app dependencies 1. In the **Terminal**, run the following command to install the required dependencies for the project: After registering an application and creating a user flow in a Azure Active Dire ``` +In this code, the **app** variable is initialized with the **express** module and **express** is used to serve the public assets. **Msal-browser** is served as a static asset and is used to initiate the authentication flow. + ## Next steps > [!div class="nextstepaction"] |
active-directory | How To Single Page App Vanillajs Prepare Tenant | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-single-page-app-vanillajs-prepare-tenant.md | Title: Prepare your tenant to use a vanilla JavaScript single-page app for authentication. + Title: Prepare your customer tenant to authenticate a vanilla JavaScript single-page application. description: Learn how to configure your Azure Active Directory (AD) for customers tenant for authentication with a vanilla JavaScript single-page app (SPA). - Previously updated : 05/23/2023- Last updated : 05/25/2023+ #Customer intent: As a developer, I want to learn how to configure vanilla JavaScript single-page app (SPA) to sign in and sign out users with my Azure Active Directory (AD) for customers tenant. -# Sign in users to a vanilla JS single-page application - Prepare your tenant +# Prepare your customer tenant to authenticate a vanilla JavaScript single-page application. This how-to guide demonstrates how to prepare your Azure Active Directory (Azure AD) for customers tenant for authentication. You'll register a single-page application (SPA) in the Microsoft Entra admin center, and record its identifiers. You'll then create a sign in and sign out user flow in the Microsoft Entra admin center and associate your SPA with the user flow. ## Prerequisites -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl).-+- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. - If you have already registered a SPA in the Microsoft Entra admin center, and associated it with a user flow, you can skip the steps in this article and move to [Prepare a vanilla JavaScript single-page app for authentication](how-to-single-page-app-vanillajs-prepare-app.md). ## Register the SPA |
active-directory | How To Single Page App Vanillajs Sample Sign In | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-single-page-app-vanillajs-sample-sign-in.md | description: Learn how to configure a sample JavaSCript single-page application - - Previously updated : 05/23/2023- Last updated : 05/25/2023+ #Customer intent: As a dev, devops, I want to learn about how to configure a sample vanilla JS SPA to sign in and sign out users with my Azure Active Directory (Azure AD) for customers tenant # Sign in users in a sample vanilla JavaScript single-page application -This how-to guide uses a sample vanilla JavaScript single-page Application (SPA) to demonstrate how to add authentication to a SPA. This SPA enables users to sign in and sign out by using their own Azure Azure Active Directory (AD) for customers tenant. The sample uses the [Microsoft Authentication Library for JavaScript (MSAL.js)](https://github.com/AzureAD/microsoft-authentication-library-for-js) to handle authentication. +This how-to guide uses a sample vanilla JavaScript single-page Application (SPA) to demonstrate how to add authentication to a SPA. The SPA enables users to sign in and sign out by using their own Azure Azure Active Directory (AD) for customers tenant. The sample uses the [Microsoft Authentication Library for JavaScript (MSAL.js)](https://github.com/AzureAD/microsoft-authentication-library-for-js) to handle authentication. ## Prerequisites -* Although any IDE that supports vanilla JS applications can be used, **Visual Studio Code** is used for this guide. It can be downloaded from the [Downloads](https://visualstudio.microsoft.com/downloads) page. +* Although any IDE that supports vanilla JS applications can be used, **Visual Studio Code** is recommended for this guide. It can be downloaded from the [Downloads](https://visualstudio.microsoft.com/downloads) page. * [Node.js](https://nodejs.org/en/download/).-* Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). +* Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. ## Register the SPA in the Microsoft Entra admin center If you choose to download the `.zip` file, extract the sample app file to a fold ## Next steps -Learn how to use the Microsoft Authentication Library (MSAL) for JavaScript to sign in users and acquire tokens to call Microsoft Graph. +> [!div class="nextstepaction"] +> [Enable self-service password reset](./how-to-enable-password-reset-customers.md) |
active-directory | How To Single Page App Vanillajs Sign In Sign Out | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-single-page-app-vanillajs-sign-in-sign-out.md | description: Learn how to configure a vanilla JavaScript single-page app (SPA) t - - Previously updated : 05/23/2023- Last updated : 05/25/2023+ #Customer intent: As a developer, I want to learn how to configure vanilla JavaScript single-page app (SPA) to sign in and sign out users with my Azure Active Directory (AD) for customers tenant. -# Configure a Single-page application User Interface and Sign-In +# Configure a single-page application user interface and sign-In When authorization has been configured, the user interface can be created to allow users to sign in and sign out when the project is run. To build the user interface (UI) for the application, [Bootstrap](https://getbootstrap.com/) is used to create a responsive UI that contains a **Sign-In** and **Sign-Out** button. Next, you'll run the project and test the sign-in and sign-out functionality. When authorization has been configured, the user interface can be created to all ## Create the *https://docsupdatetracker.net/index.html* file -The main page of the application, *https://docsupdatetracker.net/index.html*, is the first page that is loaded when the application is started. It's also the page that is loaded when the user selects the **Sign Out** button. +The main page of the application, *https://docsupdatetracker.net/index.html*, is the first page that is loaded when the application is started. It's also the page that is loaded when the user selects the **Sign-Out** button. -1. In the *public* folder, create a new file named *https://docsupdatetracker.net/index.html*. This file contains the HTML for the main page of the application. -1. Open *https://docsupdatetracker.net/index.html* and add the following code snippet: +1. In the *public* folder, open *https://docsupdatetracker.net/index.html* and add the following code snippet: ```html <!DOCTYPE html> The main page of the application, *https://docsupdatetracker.net/index.html*, is the first page that is loaded ## Create the *signout.html* file -1. In the *public* folder, create a new file named *signout.html*. This file contains the HTML for the sign-out page of the application. -1. Open *signout.html* and add the following code snippet: +1. In the *public* folder, open *signout.html* and add the following code snippet: ```html <!DOCTYPE html> The main page of the application, *https://docsupdatetracker.net/index.html*, is the first page that is loaded ## Create the *ui.js* file -1. In the *public* folder, create a new file named *ui.js*. This file contains the JavaScript code for the UI of the application. -1. Open *ui.js* and add the following code snippet: +1. In the *public* folder, open *ui.js* and add the following code snippet: ```javascript // Select DOM elements to work with The main page of the application, *https://docsupdatetracker.net/index.html*, is the first page that is loaded ## Create the styles.css file -1. In the *public* folder, create a new file named *styles.css*. This file contains the CSS code for the UI of the application. -1. Open *styles.css* and add the following code snippet: +1. In the *public* folder, open *styles.css* and add the following code snippet: ```css .navbarStyle { Now that all the required code snippets have been added, the application can be 1. A window appears asking which account to sign out of. 1. Upon successful sign out, a final window appears advising you to close all browser windows. -## Next steps +## See also -> [!div class="nextstepaction"] -> [Enable self-service password reset](./how-to-enable-password-reset-customers.md) +- [Enable self-service password reset](./how-to-enable-password-reset-customers.md) +- [Customize the default branding](how-to-customize-branding-customers.md) +- [Configure sign-in with Google](how-to-google-federation-customers.md) +- [Sign in users in your own ASP.NET web application by using an Azure AD for customers tenant](how-to-web-app-dotnet-sign-in-prepare-app.md) |
active-directory | How To Single Page Application Angular Sample | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-single-page-application-angular-sample.md | This how-to guide uses a sample Angular single-page application (SPA) to demonst * Although any IDE that supports vanilla JS applications can be used, **Visual Studio Code** is used for this guide. It can be downloaded from the [Downloads](https://visualstudio.microsoft.com/downloads) page. * [Node.js](https://nodejs.org/en/download/).-* Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). +* Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. ## Register the SPA in the Microsoft Entra admin center |
active-directory | How To Single Page Application React Prepare Tenant | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-single-page-application-react-prepare-tenant.md | In this article, you learn how to register your application and record identifie ## Prerequisites -An Azure subscription. If you don't have one, [create a free account](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl) before you begin. +An Azure subscription. If you don't have one, <a href="https://azure.microsoft.com/free/?WT.mc_id=A261C142F" target="_blank">create a free account</a> before you begin. This Azure account must have permissions to manage applications. Any of the following Azure AD roles include the required permissions: * Application administrator * Application developer * Cloud application administrator -If you haven't already created your own customer tenant, [create one now](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). You can use an existing customer tenant if you have one. +If you haven't already created your own customer tenant, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">create one now</a>. You can use an existing customer tenant if you have one. ## Register the application and record identifiers [!INCLUDE [register-client-app-common](./includes/register-app/register-client-app-common.md)] |
active-directory | How To Single Page Application React Sample | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-single-page-application-react-sample.md | This guide uses a sample React single-page application (SPA) to demonstrate how ## Prerequisites * Although any IDE that supports React applications can be used, **Visual Studio Code** is used for this guide. It can be downloaded from the [Downloads](https://visualstudio.microsoft.com/downloads) page. * [Node.js](https://nodejs.org/en/download/).-* Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). +* Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. ## Register the SPA in the Microsoft Entra admin center |
active-directory | How To User Flow Sign Up Sign In Customers | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-user-flow-sign-up-sign-in-customers.md | You can create multiple user flows if you have multiple applications that you wa ## Prerequisites -- **An Azure AD customer tenant**: Before you begin, create your Azure AD customer tenant. You can set up a [free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl), or you can create a new customer tenant in Azure AD.+- **An Azure AD customer tenant**: Before you begin, create your Azure AD customer tenant. You can set up a <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">free trial</a>, or you can create a new customer tenant in Azure AD. - **Email one-time passcode enabled (optional)**: If you want customers to use their email address and a one-time passcode each time they sign in, make sure Email one-time passcode is enabled at the tenant level (in the [Microsoft Entra admin center](https://entra.microsoft.com/), navigate to **External Identities** > **All Identity Providers** > **Email One-time-passcode**). - **Custom attributes defined (optional)**: User attributes are values collected from the user during self-service sign-up. Azure AD comes with a built-in set of attributes, but you can [define custom attributes to collect during sign-up](how-to-define-custom-attributes.md). Define custom attributes in advance so they're available when you set up your user flow. Or you can create and add them later. - **Identity providers defined (optional)**: You can set up federation with [Google](how-to-google-federation-customers.md) or [Facebook](how-to-facebook-federation-customers.md) in advance, and then select them as sign-in options as you create the user flow. |
active-directory | How To Web App Dotnet Sample Sign In | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-web-app-dotnet-sample-sign-in.md | In this article, you'll register a web application in the Microsoft Entra admin - Although any IDE that supports ASP.NET applications can be used, Visual Studio Code is used for this guide. It can be downloaded from the [Downloads](https://visualstudio.microsoft.com/downloads/) page. - [.NET 7.0 SDK](https://dotnet.microsoft.com/download/dotnet).-- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl).+- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. ## Register the web app |
active-directory | How To Web App Dotnet Sign In Prepare Tenant | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-web-app-dotnet-sign-in-prepare-tenant.md | This how-to guide demonstrates how to prepare your Azure Active Directory (Azure ## Prerequisites -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl).+- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. If you have already registered a web application in the Microsoft Entra admin center, and associated it with a user flow, you can skip the steps in this article and move to [Prepare your application](how-to-web-app-dotnet-sign-in-prepare-app.md). |
active-directory | How To Web App Node Sample Sign In Call Api | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-web-app-node-sample-sign-in-call-api.md | In this article, you complete the following tasks: - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl).+- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. ## Register a web application and a web API |
active-directory | How To Web App Node Sample Sign In | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-web-app-node-sample-sign-in.md | In this article, you do the following tasks: - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). +- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. <!--Awaiting this link http://developer.microsoft.com/identity/customers to go live on Developer hub--> |
active-directory | How To Web App Node Sign In Call Api Overview | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-web-app-node-sign-in-call-api-overview.md | The web API completes the following events: - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl).+- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. If you want to run a sample Node.js web application that calls a sample web API to get a feel of how things work, complete the steps in [Sign in users and call an API in sample Node.js web application](how-to-web-app-node-sample-sign-in-call-api.md). |
active-directory | How To Web App Node Sign In Overview | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-web-app-node-sign-in-overview.md | The sign-in flow involves the following steps: - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). +- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. If you want to run a sample Node.js web application to get a feel of how things work, complete the steps in [Sign in users in a sample Node.js web application](how-to-web-app-node-sample-sign-in.md) |
active-directory | How To Web App Node Use Certificate | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-web-app-node-use-certificate.md | When needed, you can also create a self-signed certificate programmatically by u - [Visual Studio Code](https://code.visualstudio.com/download) or another code editor. -- Azure AD for customers tenant. If you don't already have one, [sign up for a free trial](https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl). +- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>. - [OpenSSL](https://wiki.openssl.org/index.php/Binaries) or you can easily install [OpenSSL](https://community.chocolatey.org/packages/openssl) in Windows via [Chocolatey](https://chocolatey.org/). |
active-directory | Whats New Archive | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/whats-new-archive.md | We're in the process of updating how Exchange ActiveSync (EAS) evaluates the fol If you've previously used these conditions in your Conditional Access policies, be aware that the condition behavior might change. For example, if you previously used the user location condition in a policy, you might find the policy now being skipped based on the location of your user. --## February 2019 --### Configurable Azure AD SAML token encryption (Public preview) --**Type:** New feature -**Service category:** Enterprise Apps -**Product capability:** SSO --You can now configure any supported SAML app to receive encrypted SAML tokens. When configured and used with an app, Azure AD encrypts the emitted SAML assertions using a public key obtained from a certificate stored in Azure AD. --For more information about configuring your SAML token encryption, see [Configure Azure AD SAML token encryption](../manage-apps/howto-saml-token-encryption.md). ----### Create an access review for groups or apps using Azure AD Access Reviews --**Type:** New feature -**Service category:** Access Reviews -**Product capability:** Governance --You can now include multiple groups or apps in a single Azure AD access review for group membership or app assignment. Access reviews with multiple groups or apps are set up using the same settings and all included reviewers are notified at the same time. --For more information about how create an access review using Azure AD Access Reviews, see [Create an access review of groups or applications in Azure AD Access Reviews](../governance/create-access-review.md) ----### New Federated Apps available in Azure AD app gallery - February 2019 --**Type:** New feature -**Service category:** Enterprise Apps -**Product capability:** 3rd Party Integration --In February 2019, we've added these 27 new apps with Federation support to the app gallery: --[Euromonitor Passport](../saas-apps/euromonitor-passport-tutorial.md), [MindTickle](../saas-apps/mindtickle-tutorial.md), [AirStack](../saas-apps/airstack-tutorial.md), [Oracle Fusion ERP](../saas-apps/oracle-fusion-erp-tutorial.md), [IDrive](../saas-apps/idrive-tutorial.md), [Skyward Qmlativ](../saas-apps/skyward-qmlativ-tutorial.md), [Brightidea](../saas-apps/brightidea-tutorial.md), [AlertOps](../saas-apps/alertops-tutorial.md), [Soloinsight-CloudGate SSO](../saas-apps/soloinsight-cloudgate-sso-tutorial.md), Permission Click, [Brandfolder](../saas-apps/brandfolder-tutorial.md), [StoregateSmartFile](../saas-apps/smartfile-tutorial.md), [Pexip](../saas-apps/pexip-tutorial.md), [Stormboard](../saas-apps/stormboard-tutorial.md), [Seismic](../saas-apps/seismic-tutorial.md), [Share A Dream](https://www.shareadream.org/), [Bugsnag](../saas-apps/bugsnag-tutorial.md), [webMethods Integration Cloud](../saas-apps/webmethods-integration-cloud-tutorial.md), [Knowledge Anywhere LMS](../saas-apps/knowledge-anywhere-lms-tutorial.md), [OU Campus](../saas-apps/ou-campus-tutorial.md), [Periscope Data](../saas-apps/periscope-data-tutorial.md), [Netop Portal](../saas-apps/netop-portal-tutorial.md), [smartvid.io](../saas-apps/smartvid.io-tutorial.md), [PureCloud by Genesys](../saas-apps/purecloud-by-genesys-tutorial.md), [ClickUp Productivity Platform](../saas-apps/clickup-productivity-platform-tutorial.md) --For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md). ----### Enhanced combined multi-factor authentication (MFA)/SSPR registration --**Type:** Changed feature -**Service category:** Self Service Password Reset -**Product capability:** User Authentication --In response to customer feedback, we've enhanced the combined multifactor authentication (MFA)/SSPR registration preview experience, helping your users to more quickly register their security info for both multifactor authentication (MFA) and SSPR. --**To turn on the enhanced experience for your users' today, follow these steps:** --1. As a global administrator or user administrator, sign in to the Azure portal and go to **Azure Active Directory > User settings > Manage settings for access panel preview features**. --2. In the **Users who can use the preview features for registering and managing security info ΓÇô refresh** option, choose to turn on the features for a **Selected group of users** or for **All users**. --Over the next few weeks, we'll be removing the ability to turn on the old combined multifactor authentication (MFA)/SSPR registration preview experience for tenants that don't already have it turned on. --**To see if the control will be removed for your tenant, follow these steps:** --1. As a global administrator or user administrator, sign in to the Azure portal and go to **Azure Active Directory > User settings > Manage settings for access panel preview features**. --2. If the **Users who can use the preview features for registering and managing security info** option is set to **None**, the option will be removed from your tenant. --Regardless of whether you previously turned on the old combined multifactor authentication (MFA)/SSPR registration preview experience for users or not, the old experience will be turned off at a future date. Because of that, we strongly suggest that you move to the new, enhanced experience as soon as possible. --For more information about the enhanced registration experience, see the [Cool enhancements to the Azure AD combined MFA and password reset registration experience](https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Cool-enhancements-to-the-Azure-AD-combined-MFA-and-password/ba-p/354271). ----### Updated policy management experience for user flows --**Type:** Changed feature -**Service category:** B2C - Consumer Identity Management -**Product capability:** B2B/B2C --We've updated the policy creation and management process for user flows (previously known as, built-in policies) easier. This new experience is now the default for all of your Azure AD tenants. --You can provide additional feedback and suggestions by using the smile or frown icons in the **Send us feedback** area at the top of the portal screen. --For more information about the new policy management experience, see the [Azure AD B2C now has JavaScript customization and many more new features](https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Azure-AD-B2C-now-has-JavaScript-customization-and-many-more-new/ba-p/353595) blog. ----### Choose specific page element versions provided by Azure AD B2C --**Type:** New feature -**Service category:** B2C - Consumer Identity Management -**Product capability:** B2B/B2C --You can now choose a specific version of the page elements provided by Azure AD B2C. By selecting a specific version, you can test your updates before they appear on a page and you can get predictable behavior. Additionally, you can now opt in to enforce specific page versions to allow JavaScript customizations. To turn on this feature, go to the **Properties** page in your user flows. --For more information about choosing specific versions of page elements, see the [Azure AD B2C now has JavaScript customization and many more new features](https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Azure-AD-B2C-now-has-JavaScript-customization-and-many-more-new/ba-p/353595) blog. ----### Configurable end-user password requirements for B2C (GA) --**Type:** New feature -**Service category:** B2C - Consumer Identity Management -**Product capability:** B2B/B2C --You can now set up your organization's password complexity for your end users, instead of having to use your native Azure AD password policy. From the **Properties** blade of your user flows (previously known as your built-in policies), you can choose a password complexity of **Simple** or **Strong**, or you can create a **Custom** set of requirements. --For more information about password complexity requirement configuration, see [Configure complexity requirements for passwords in Azure Active Directory B2C](../../active-directory-b2c/password-complexity.md). ----### New default templates for custom branded authentication experiences --**Type:** New feature -**Service category:** B2C - Consumer Identity Management -**Product capability:** B2B/B2C --You can use our new default templates, located on the **Page layouts** blade of your user flows (previously known as built-in policies), to create a custom branded authentication experience for your users. --For more information about using the templates, see [Azure AD B2C now has JavaScript customization and many more new features](https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Azure-AD-B2C-now-has-JavaScript-customization-and-many-more-new/ba-p/353595). ----## January 2019 --### Active Directory B2B collaboration using one-time passcode authentication (Public preview) --**Type:** New feature -**Service category:** B2B -**Product capability:** B2B/B2C --We've introduced one-time passcode authentication (OTP) for B2B guest users who can't be authenticated through other means like Azure AD, a Microsoft account (MSA), or Google federation. This new authentication method means that guest users don't have to create a new Microsoft account. Instead, while redeeming an invitation or accessing a shared resource, a guest user can request a temporary code to be sent to an email address. Using this temporary code, the guest user can continue to sign in. --For more information, see [Email one-time passcode authentication (preview)](../external-identities/one-time-passcode.md) and the blog, [Azure AD makes sharing and collaboration seamless for any user with any account](https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Azure-AD-makes-sharing-and-collaboration-seamless-for-any-user/ba-p/325949). --### New Azure AD Application Proxy cookie settings --**Type:** New feature -**Service category:** App Proxy -**Product capability:** Access Control --We've introduced three new cookie settings, available for your apps that are published through Application Proxy: --- **Use HTTP-Only cookie.** Sets the **HTTPOnly** flag on your Application Proxy access and session cookies. Turning on this setting provides additional security benefits, such as helping to prevent copying or modifying of cookies through client-side scripting. We recommend you turn on this flag (choose **Yes**) for the added benefits.--- **Use secure cookie.** Sets the **Secure** flag on your Application Proxy access and session cookies. Turning on this setting provides additional security benefits, by making sure cookies are only transmitted over TLS secure channels, such as HTTPS. We recommend you turn on this flag (choose **Yes**) for the added benefits.--- **Use persistent cookie.** Prevents access cookies from expiring when the web browser is closed. These cookies last for the lifetime of the access token. However, the cookies are reset if the expiration time is reached or if the user manually deletes the cookie. We recommend you keep the default setting **No**, only turning on the setting for older apps that don't share cookies between processes.--For more information about the new cookies, see [Cookie settings for accessing on-premises applications in Azure Active Directory](../app-proxy/application-proxy-configure-cookie-settings.md). ----### New Federated Apps available in Azure AD app gallery - January 2019 --**Type:** New feature -**Service category:** Enterprise Apps -**Product capability:** 3rd Party Integration --In January 2019, we've added these 35 new apps with Federation support to the app gallery: --[Firstbird](../saas-apps/firstbird-tutorial.md), [Folloze](../saas-apps/folloze-tutorial.md), [Talent Palette](../saas-apps/talent-palette-tutorial.md), [Infor CloudSuite](../saas-apps/infor-cloud-suite-tutorial.md), [Cisco Umbrella](../saas-apps/cisco-umbrella-tutorial.md), [Zscaler Internet Access Administrator](../saas-apps/zscaler-internet-access-administrator-tutorial.md), [Expiration Reminder](../saas-apps/expiration-reminder-tutorial.md), [InstaVR Viewer](../saas-apps/instavr-viewer-tutorial.md), [CorpTax](../saas-apps/corptax-tutorial.md), [Verb](https://app.verb.net/login), [TheOrgWiki](https://www.theorgwiki.com/signup), [Pavaso Digital Close](../saas-apps/pavaso-digital-close-tutorial.md), [GoodPractice Toolkit](../saas-apps/goodpractice-toolkit-tutorial.md), [Cloud Service PICCO](../saas-apps/cloud-service-picco-tutorial.md), [AuditBoard](../saas-apps/auditboard-tutorial.md), [iProva](../saas-apps/iprova-tutorial.md), [Workable](../saas-apps/workable-tutorial.md), [CallPlease](https://webapp.callplease.com/create-account/create-account.html), [GTNexus SSO System](../saas-apps/gtnexus-sso-module-tutorial.md), [CBRE ServiceInsight](../saas-apps/cbre-serviceinsight-tutorial.md), [Deskradar](../saas-apps/deskradar-tutorial.md), [Coralogixv](../saas-apps/coralogix-tutorial.md), [Signagelive](../saas-apps/signagelive-tutorial.md), [ARES for Enterprise](../saas-apps/ares-for-enterprise-tutorial.md), [K2 for Office 365](https://www.k2.com/O365), [Xledger](https://www.xledger.net/), [iDiD Manager](../saas-apps/idid-manager-tutorial.md), [HighGear](../saas-apps/highgear-tutorial.md), [Visitly](../saas-apps/visitly-tutorial.md), [Korn Ferry ALP](../saas-apps/korn-ferry-alp-tutorial.md), [Acadia](../saas-apps/acadia-tutorial.md), [Adoddle cSaas Platform](../saas-apps/adoddle-csaas-platform-tutorial.md) --For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md). ----### New Azure AD Identity Protection enhancements (Public preview) --**Type:** Changed feature -**Service category:** Identity Protection -**Product capability:** Identity Security & Protection --We're excited to announce that we've added the following enhancements to the Azure AD Identity Protection public preview offering, including: --- An updated and more integrated user interface--- Additional APIs--- Improved risk assessment through machine learning--- Product-wide alignment across risky users and risky sign-ins--For more information about the enhancements, see [What is Azure Active Directory Identity Protection (refreshed)?](../identity-protection/overview-identity-protection.md) to learn more and to share your thoughts through the in-product prompts. ----### New App Lock feature for the Microsoft Authenticator app on iOS and Android devices --**Type:** New feature -**Service category:** Microsoft Authenticator App -**Product capability:** Identity Security & Protection --To keep your one-time passcodes, app information, and app settings more secure, you can turn on the App Lock feature in the Microsoft Authenticator app. Turning on App Lock means you'll be asked to authenticate using your PIN or biometric every time you open the Microsoft Authenticator app. --For more information, see the [Microsoft Authenticator app FAQ](https://support.microsoft.com/account-billing/common-problems-with-the-microsoft-authenticator-app-12d283d1-bcef-4875-9ae5-ac360e2945dd). ----### Enhanced Azure AD Privileged Identity Management (PIM) export capabilities --**Type:** New feature -**Service category:** Privileged Identity Management -**Product capability:** Privileged Identity Management --Privileged Identity Management (PIM) administrators can now export all active and eligible role assignments for a specific resource, which includes role assignments for all child resources. Previously, it was difficult for administrators to get a complete list of role assignments for a subscription and they had to export role assignments for each specific resource. --For more information, see [View activity and audit history for Azure resource roles in PIM](../privileged-identity-management/azure-pim-resource-rbac.md). -- |
active-directory | Entitlement Management Ticketed Provisioning | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/governance/entitlement-management-ticketed-provisioning.md | + + Title: Automated ServiceNow Ticket Creation with Azure AD Entitlement Management Integration +description: This tutorial walks you through Ticketed provisioning via ServiceNow integration with entitlement management using custom extensions and Logic Apps. ++++++ Last updated : 05/08/2023++++# Tutorial: Automated ServiceNow Ticket Creation with Azure AD Entitlement Management Integration ++++Scenario: In this scenario you learn how to use custom extensibility, and a Logic App, to automatically generate ServiceNow ticket for provisioning for manual provisioning of users who have received assignments and need access to apps. ++In this tutorial, you learn how to: ++> [!div class="checklist"] +> * Adding a Logic App Workflow to an existing catalog. +> * Adding a custom extension to a policy within an existing access package. +> * Register an application in Azure AD for resuming Entitlement Management workflow +> * Configuring ServiceNow for Automation Authentication. +> * Requesting access to an access package as an end-user. +> * Receiving access to the requested access package as an end-user. ++## Prerequisites ++- An Azure AD user account with an active Azure subscription. If you don't already have one, you can [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F). +- One of the following roles: Global Administrator, Cloud Application Administrator, Application Administrator, or owner of the service principal. +- A [ServiceNow instance](https://www.servicenow.com/) of Rome or higher +- SSO integration with ServiceNow. If this isn't already configured, see:[Tutorial: Azure Active Directory single sign-on (SSO) integration with ServiceNow](../saas-apps/servicenow-tutorial.md) before continuing. ++## Adding Logic App Workflow to an existing Catalog for Entitlement Management ++Prerequisite roles: Global administrator, Identity Governance administrator, or Catalog owner and Resource Group Owner. ++To add a Logic App workflow to an existing catalog, you use an ARM template for the Logic App creation here: ++[](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Figaelmprodportalhosting.blob.core.windows.net%2Farm-deployment-template%2FLogicAppServiceNowIntegration.json ). +++Provide the Azure subscription, resource group details, along with the Logic App name and the Catalog ID to associate the Logic App with and select purchase. For more information on how to create a new catalog, please follow the steps in this document: [Create and manage a catalog of resources in entitlement management](entitlement-management-catalog-create.md). +++1. Navigate To Entra portal [Identity Governance - Microsoft Entra admin center](https://entra.microsoft.com/#view/Microsoft_AAD_ERM/DashboardBlade/~/elmEntitlement) ++1. In the left menu, select **Catalogs**. ++1. Select the catalog for which you want to add a custom extension and then in the left menu, select **Custom Extensions (Preview)**. ++1. In the header navigation bar, select **Add a Custom Extension**. ++1. In the **Basics** tab, enter the name of the custom extension and a description of the workflow. These fields show up in the **Custom Extensions** tab of the Catalog. + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-create-custom-extension.png" alt-text="Screenshot of creating a custom extension for entitlement management." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-create-custom-extension.png"::: +1. Select the **Extension Type** as ΓÇ£**Request workflow**ΓÇ¥ to correspond with the policy stage of the access package requested being created. + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-custom-extension-behavior.png" alt-text="Screenshot of entitlement management custom extension behavior actions tab." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-custom-extension-behavior.png"::: +1. Select **Launch and wait** in the **Extension Configuration** which will pause the associated access package action until after the Logic App linked to the extension completes its task, and a resume action is sent by the admin to continue the process. For more information on this process, see: [Configuring custom extensions that pause entitlement management processes](entitlement-management-logic-apps-integration.md#configuring-custom-extensions-that-pause-entitlement-management-processes). ++1. In the **Details** tab, choose No in the "*Create new logic App*" field as the Logic App has already been created in the previous steps. However, you need to provide the Azure subscription and resource group details, along with the Logic App name. + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-custom-extension-details.png" alt-text="Screenshot of the entitlement management custom extension details tab." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-custom-extension-details.png"::: +1. In **Review and Create**, review the summary of your custom extension and make sure the details for your Logic App call-out are correct. Then select **Create**. ++1. This custom extension to the linked Logic App now appears in your Custom Extensions tab under Catalogs. You're able to call on this in access package policies. ++> [!TIP] +> To learn more about custom extension feature that pause entitlement management processes, see: [Configuring custom extensions that pause entitlement management processes](entitlement-management-logic-apps-integration.md#configuring-custom-extensions-that-pause-entitlement-management-processes). ++## Adding Custom Extension to a policy in an existing Access Package ++After setting up custom extensibility in the catalog, administrators can create an access package with a policy to trigger the custom extension when the request has been approved. This enables them to define specific access requirements and tailor the access review process to meet their organization's needs. ++**Prerequisite roles**: Global administrator, Identity Governance administrator, Catalog owner, or Access package manager ++1. In Identity Governance portal, select **Access packages**. ++1. Select the access package you want to add a custom extension (Logic App) to from the list of access packages that have already been created. ++1. Change to the policy tab, select the policy, and select **Edit**. ++1. In the policy settings, go to the **Custom Extensions (Preview)** tab. ++1. In the menu below **Stage**, select the access package event you wish to use as trigger for this custom extension (Logic App). For our scenario, to trigger the custom extension Logic App workflow when access package has been approved, select **Request is approved**. +> [!NOTE] +> To create a ServiceNow ticket for an expired assignment that had permission granted previously, add a new stage for "*Assignment is removed*", and then select the LogicApp. ++1. In the menu below Custom Extension, select the custom extension (Logic App) you created in the above steps to add to this access package. The action you select executes when the event selected in the *when* field occurs. ++1. Select **Update** to add it to an existing access package's policy. + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-access-package-extension.png" alt-text="Screenshot of custom extension details for an access package." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-access-package-extension.png"::: ++> [!NOTE] +> Select **New access package** if you want to create a new access package. For more information about how to create an access package, see: [Create a new access package in entitlement management](entitlement-management-access-package-create.md). For more information about how to edit an existing access package, see: [Change request settings for an access package in Azure AD entitlement management](entitlement-management-access-package-request-policy.md#open-and-edit-an-existing-policys-request-settings). ++++## Register an application with secrets in Azure portal ++With Azure, you're able to use [Azure Key Vault](/azure/key-vault/secrets/about-secrets) to store application secrets such as passwords. To register an application with secrets within the Azure portal, follow these steps: ++1. Sign in to the Azure portal. ++1. Search for and select Azure Active Directory. ++1. Under Manage, select App registrations > New registration. ++1. Enter a display Name for your application. ++1. Select "Accounts in this organizational directory only" in supported account type. ++1. Select Register. ++After registering your application, you must add a client secret by following these steps: ++1. In the Azure portal, in App registrations, select your application. ++1. Select Certificates & secrets > Client secrets > New client secret. ++1. Add a description for your client secret. ++1. Select an expiration for the secret or specify a custom lifetime. ++1. Select Add. ++> [!NOTE] +> To find more detailed information on registering an application, see: [Quickstart: Register an app in the Microsoft identity platform](../develop/quickstart-register-app.md): ++To authorize the created application to call the [MS Graph resume API](/graph/api/accesspackageassignmentrequest-resume) you'd do the following steps: ++1. Navigate to the Entra portal [Identity Governance - Microsoft Entra admin center](https://entra.microsoft.com/#view/Microsoft_AAD_ERM/DashboardBlade/~/elmEntitlement) ++1. In the left menu, select **Catalogs**. ++1. Select the catalog for which you have added the custom extension. ++1. Select ΓÇ£Roles and administratorsΓÇ¥ menu and select ΓÇ£+ Add access package assignment managerΓÇ¥. ++1. In the Select members dialog box, search for the application created by name or application Identifier. Select the application and choose the *ΓÇ£SelectΓÇ¥* button. ++> [!TIP] +> You can find more detailed information on delegation and roles on MicrosoftΓÇÖs official documentation located here: [Delegation and roles in entitlement management](entitlement-management-delegate.md). +++## Configuring ServiceNow for Automation Authentication ++At this point it's time to configure ServiceNow for resuming the entitlement management workflow after the ServiceNow ticket closure: ++1. Register an Azure Active Directory application in the ServiceNow Application Registry by following these steps: + 1. Sign in to ServiceNow and navigate to the Application Registry. + 1. Select ΓÇ£*New*ΓÇ¥ and then select ΓÇ£**Connect to a third party OAuth Provider**ΓÇ¥. + 1. Provide a name for the application, and select Client Credentials in the Default Grant type. + 1. Enter the Client Name, ID, Client Secret, Authorization URL, Token URL that were generated when you registered the Azure Active Directory application in the Azure portal. + 1. Submit the application. + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-application-registry.png" alt-text="Screenshot of the application registry within ServiceNow." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-application-registry.png"::: +1. Create a System Web Service REST API message by following these steps: + 1. Go to the REST API Messages section under System Web Services. + 1. Select the "New" button to create a new REST API message. + 1. Fill in all the required fields, which include providing the Endpoint URL: + `` https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignmentRequests/${AccessPackageAssignmentRequestId}/resume `` + 1. For Authentication, select OAuth2.0 and choose the OAuth profile that was created during the app registration process. + 1. Select the "*Submit*" button to save the changes. + 1. Go back to the REST API Messages section under System Web Services. + 1. Select Http Request and then select "*New*". Enter a name, and select "POST" as the Http method. + 1. In the Http request, add the content for the Http query parameters using the following API Schema: + ``` http + API Schema: { + "data": { + "@odata.type": "#microsoft.graph.accessPackageAssignmentRequestCallbackData", + "customExtensionStageInstanceDetail": "Resuming-Assignment for user", + "customExtensionStageInstanceId": "${StageInstanceId}", + "stage": "${Stage}" + }, + "source": "ServiceNow", + "type": "microsoft.graph.accessPackageCustomExtensionStage.${Stage}" + } + ``` + 1. Select "*Submit*" to save the changes. + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-resume-call.png" alt-text="Screenshot of resume call selection within ServiceNow." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-resume-call.png"::: + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-request-call.png" alt-text="Screenshot of the http request within ServiceNow."::: +1. Modify the request table schema: To modify the request table schema, make changes to the three tables shown in the following image: + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-request-table-schema.png" alt-text="Screenshot of the request table schema within ServiceNow." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-request-table-schema.png"::: + Add the three column label and type as string: + - AccessPackageAssignmentRequestId + - AccessPackageAssignmentStage + - StageInstanceId +1. To automate workflow with Flow Designer, you'd do the following: + 1. Sign in to ServiceNow and go to Flow Designer. + 1. Select the ΓÇ£*New*ΓÇ¥ button and create a new action. + 1. Add an action to invoke the System Web Service REST API message that was created in the previous step. + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-flow-designer.png" alt-text="Screenshot of flow designer script to resume entitlement management process within ServiceNow." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-flow-designer.png"::: + Script for the action: (Update the script with the Column labels created in previous step): + ``` + (function execute(inputs, outputs) { + gs.info("AccessPackageAssignmentRequestId: " + inputs['accesspkgassignmentrequestid']); + gs.info("StageInstanceId: " + inputs['customextensionstageinstanceid'] ); + gs.info("Stage: " + inputs['assignmentstage']); + var r = new sn_ws.RESTMessageV2('Resume ELM WorkFlow', 'RESUME'); + r.setStringParameterNoEscape('AccessPackageAssignmentRequestId', inputs['accesspkgassignmentrequestid']); + r.setStringParameterNoEscape('StageInstanceId', inputs['customextensionstageinstanceid'] ); + r.setStringParameterNoEscape('Stage', inputs['assignmentstage']); + var response = r.execute(); + var responseBody = response.getBody(); + var httpStatus = response.getStatusCode(); + var requestBody = r.getRequestBody(); + gs.info("requestBody: " + requestBody); + gs.info("responseBody: " + responseBody); + gs.info("httpStatus: " + httpStatus); + })(inputs, outputs); + ``` + 1. Save the Action + 1. Select the "*New*" button to create a new flow. + 1. Enter flow name, select Run as ΓÇô System User and select submit. +1. To create triggers within ServiceNow, you'd follow these steps: + 1. Select "*Add Trigger*" and then select "*updated*" trigger and run the trigger for every update. + 1. Add a filter condition by updating the condition as shown in the following image: + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-call-elm-assignment.png" alt-text="Screenshot of ServiceNow call elm resume API" lightbox="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-call-elm-assignment.png"::: + 1. Select done. + 1. Select add an action + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-flow-designer-trigger.png" alt-text="Screenshot of flow diagram trigger." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-flow-designer-trigger.png"::: + 1. Select the Action and then select the action created in the previous step. + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-flow-designer-actions.png" alt-text="Screenshot of flow designer actions selection." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-flow-designer-actions.png"::: + 1. Drag and drop the newly created columns from the request record to the appropriate action parameters. + 1. Select ΓÇ£DoneΓÇ¥, ΓÇ£SaveΓÇ¥ and then ΓÇ£ActivateΓÇ¥. + :::image type="content" source="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-flow-designer-save.png" alt-text="Screenshot of save and activate within flow designer." lightbox="media/entitlement-management-servicenow-integration/entitlement-management-servicenow-flow-designer-save.png"::: +++## Requesting access to an access package as an end-user ++When an end user requests access to an access package, the request is sent to the appropriate approver. Once the approver grants approval, Entitlement Management calls the Logic App. The Logic app then calls ServiceNow to create a new request/ticket and Entitlement Management awaits a callback from ServiceNow. +++## Receiving access to the requested access package as an end-user ++The IT Support team works on the ticket create above to do necessary provisions and close the ServiceNow ticket. When the ticket is closed, ServiceNow triggers a call to resume the Entitlement Management workflow. Once the request is completed, the requestor receives a notification from ELM that the request has been fulfilled. This streamlined workflow ensures that access requests are fulfilled efficiently, and users are notified promptly. +++> [!NOTE] +> The end user will see "assignment failed" in the MyAccess portal if the ticket is not closed within 14 days. +++## Next steps ++Advance to the next article to learn how to create... +> [!div class="nextstepaction"] +> [Trigger Logic Apps with custom extensions in entitlement management (Preview)](entitlement-management-logic-apps-integration.md) |
active-directory | Sap | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/governance/sap.md | Title: Manage access to your SAP applications -description: Manage access to your SAP applications. Bring identities from SAP SuccessFactors into Azure AD and provision access to SAP ECC, SAP S/4 Hana, and other SAP applications. +description: Learn how to bring identities from SAP SuccessFactors into Azure AD and provision access to SAP ECC, SAP S/4HANA, and other SAP applications. documentationcenter: '' -SAP likely runs critical functions such as HR and ERP for your business. At the same time, your business relies on Microsoft for various Azure services, Microsoft 365, and Entra Identity Governance for managing access to applications. This document describes how you can use Entra Identity Governance to manage identities across your SAP applications. -+SAP likely runs critical functions, such as HR and ERP, for your business. At the same time, your business relies on Microsoft for various Azure services, Microsoft 365, and Microsoft Entra Identity Governance for managing access to applications. This article describes how you can use Identity Governance to manage identities across your SAP applications.  ## Bring identities from HR into Azure AD -#### SuccessFactors -Customers using SAP SuccessFactors can easily bring identities into [Azure AD](../../active-directory/saas-apps/sap-successfactors-inbound-provisioning-cloud-only-tutorial.md) or [Active Directory](../../active-directory/saas-apps/sap-successfactors-inbound-provisioning-tutorial.md) using native connectors. The connectors support the following scenarios: -* **Hiring new employees** - When a new employee is added to SuccessFactors, a user account is automatically created in Azure Active Directory and optionally Microsoft 365 and [other SaaS applications supported by Azure AD](../../active-directory/app-provisioning/user-provisioning.md), with write-back of the email address to SuccessFactors. -* **Employee attribute and profile updates** - When an employee record is updated in SuccessFactors (such as their name, title, or manager), their user account will be automatically updated Azure Active Directory and optionally Microsoft 365 and [other SaaS applications supported by Azure AD](../../active-directory/app-provisioning/user-provisioning.md). -* **Employee terminations** - When an employee is terminated in SuccessFactors, their user account is automatically disabled in Azure Active Directory and optionally Microsoft 365 and other SaaS applications supported by Azure AD. -* **Employee rehires** - When an employee is rehired in SuccessFactors, their old account can be automatically reactivated or re-provisioned (depending on your preference) to Azure Active Directory and optionally Microsoft 365 and other SaaS applications supported by Azure AD. +### SuccessFactors ++Customers who use SAP SuccessFactors can easily bring identities into [Azure Active Directory (Azure AD)](../../active-directory/saas-apps/sap-successfactors-inbound-provisioning-cloud-only-tutorial.md) or [on-premises Active Directory](../../active-directory/saas-apps/sap-successfactors-inbound-provisioning-tutorial.md) by using native connectors. The connectors support the following scenarios: ++* **Hiring new employees**: When a new employee is added to SuccessFactors, a user account is automatically created in Azure AD and optionally Microsoft 365 and [other software as a service (SaaS) applications that Azure AD supports](../../active-directory/app-provisioning/user-provisioning.md). This process includes write-back of the email address to SuccessFactors. +* **Employee attribute and profile updates**: When an employee record is updated in SuccessFactors (such as name, title, or manager), the employee's user account is automatically updated in Azure AD and optionally Microsoft 365 and other SaaS applications that Azure AD supports. +* **Employee terminations**: When an employee is terminated in SuccessFactors, the employee's user account is automatically disabled in Azure AD and optionally Microsoft 365 and other SaaS applications that Azure AD supports. +* **Employee rehires**: When an employee is rehired in SuccessFactors, the employee's old account can be automatically reactivated or re-provisioned (depending on your preference) to Azure AD and optionally Microsoft 365 and other SaaS applications that Azure AD supports. > [!VIDEO https://www.youtube-nocookie.com/embed/66v2FR2-QrY]- -#### SAP HCM -Customers that are still using SAP HCM can also bring identities into Azure AD. Using the SAP Integration Suite, you can synchronize identities between SAP HCM and SAP SuccessFactors. From there, you can bring identities directly into Azure AD or provisioning them into Active Directory Domain Services, using the native provisioning integrations mentioned above. - ++### SAP HCM ++Customers who still use SAP Human Capital Management (HCM) can also bring identities into Azure AD. By using SAP Integration Suite, you can synchronize lists of workers between SAP HCM and SAP SuccessFactors. From there, you can bring identities directly into Azure AD or provision them into Active Directory Domain Services by using the native provisioning integrations mentioned earlier. +  -## Provision identities into modern SAP applications. -Once your users are in Azure Active Directory, you can provision accounts into the various SaaS and on-premises SAP applications that they need access to. You've three ways to accomplish this. -* **Option 1:** Use the enterprise application in Azure AD to configure both SSO and provisioning to SAP applications such as [SAP analytics cloud](../../active-directory/saas-apps/sap-analytics-cloud-provisioning-tutorial.md). With this option, you can apply a consistent set of governance processes across all your applications. -* **Option 2:** Use the [SAP IAS](../../active-directory/saas-apps/sap-cloud-platform-identity-authentication-provisioning-tutorial.md) enterprise application in Azure AD to provision identities into SAP IAS. Once you bring all the identities into SAP IAS, you can use SAP IPS to provision the accounts from SAP IAS into the application when required. -* **Option 3:** Use the [SAP IPS](https://help.sap.com/docs/IDENTITY_PROVISIONING/f48e822d6d484fa5ade7dda78b64d9f5/f2b2df8a273642a1bf801e99ecc4a043.html) integration to directly export identities from Azure AD into your [application](https://help.sap.com/docs/IDENTITY_PROVISIONING/f48e822d6d484fa5ade7dda78b64d9f5/ab3f641552464c79b94d10b9205fd721.html). When using SAP IPS to pull users into your applications, all provisioning configuration is managed in SAP directly. You can still use the enterprise application in Azure AD to manage single sign-on and use [Azure AD as the corporate identity provider](https://help.sap.com/docs/IDENTITY_AUTHENTICATION/6d6d63354d1242d185ab4830fc04feb1/058c7b14209f4f2d8de039da4330a1c1.html). +## Provide access to SAP applications -## Provision identities into on-premises SAP systems such as SAP ECC that aren't supported by SAP IPS +In addition to the native provisioning integrations that allow you to manage access to your SAP applications, Azure AD supports a rich set of integrations with those applications. -Customers who have yet to transition from applications such as SAP ECC to SAP S/4 Hana can still rely on the Azure AD provisioning service to provision user accounts. Within SAP ECC, you'll expose the necessary BAPIs for creating, updating, and deleting users. Within Azure AD, you have two options: -* **Option 1:** Use the lightweight Azure AD provisioning agent and web services connector to provision users into apps such as SAP ECC. -* **Option 2:** In scenarios where you need to do more complex group and role management, use the [Microsoft Identity Manager](https://learn.microsoft.com/microsoft-identity-manager/reference/microsoft-identity-manager-2016-ma-ws) to manage access to your legacy SAP applications. +### Enable SSO -## SSO, workflows, and separation of duties -In addition to the native provisioning integrations that allow you to manage access to your SAP applications, Azure AD supports a rich set of integrations with SAP. -* **SSO:** Once youΓÇÖve setup provisioning for your SAP application, youΓÇÖll want to enable single sign-on for those applications. Azure AD can serve as the identity provider and server as the authentication authority for your SAP applications. Learn more about how you can [configure Azure AD as the corporate identity provider for your SAP applications](https://help.sap.com/docs/IDENTITY_AUTHENTICATION/6d6d63354d1242d185ab4830fc04feb1/058c7b14209f4f2d8de039da4330a1c1.html). -* **Custom workflows:** When a new employee is hired in your organization, you may need to trigger a workflow within your SAP server. Using the [Entra Identity Governance Lifecycle Workflows](lifecycle-workflow-extensibility.md) in conjunction with the [SAP connector in Azure Logic apps](https://learn.microsoft.com/azure/logic-apps/logic-apps-using-sap-connector), you can trigger custom actions in SAP upon hiring a new employee. -* **Separation of duties:** With separation of duties checks now available in preview in Azure AD [entitlement management](https://techcommunity.microsoft.com/t5/azure-active-directory-identity/ensure-compliance-using-separation-of-duties-checks-in-access/ba-p/2466939), customers can now ensure that users don't take on excessive access rights. Admins and access managers can prevent users from requesting additional access packages if theyΓÇÖre already assigned to other access packages or are a member of other groups that are incompatible with the requested access. Enterprises with critical regulatory requirements for SAP apps will have a single consistent view of access controls and enforce separation of duties checks across their financial and other business critical applications and Azure AD-integrated applications. With our [Pathlock](https://pathlock.com/), integration customers can leverage fine-grained separation of duties checks with access packages in Azure AD, and over time will help customers to address Sarbanes Oxley and other compliance requirements. +After you set up provisioning for your SAP applications, you can enable SSO for them. Azure AD can serve as the identity provider and serve as the authentication authority for your SAP applications. [Learn how to configure Azure AD as the corporate identity provider for your SAP applications](https://help.sap.com/docs/IDENTITY_AUTHENTICATION/6d6d63354d1242d185ab4830fc04feb1/058c7b14209f4f2d8de039da4330a1c1.html). -## Next steps +### Provision identities into modern SAP applications -- [Bring identities from SAP SuccessFactors into Azure AD](../../active-directory/saas-apps/sap-successfactors-inbound-provisioning-cloud-only-tutorial.md)-- [Provision accounts in SAP IAS](../../active-directory/saas-apps/sap-cloud-platform-identity-authentication-provisioning-tutorial.md)+After your users are in Azure AD, you can provision accounts into the various SaaS and on-premises SAP applications that they need access to. You have three ways to accomplish this: +* Use the enterprise application in Azure AD to configure both single sign-on (SSO) and provisioning to SAP applications such as [SAP Analytics Cloud](../../active-directory/saas-apps/sap-analytics-cloud-provisioning-tutorial.md). With this option, you can apply a consistent set of governance processes across all your applications. +* Use the [SAP Identity Authentication Service (IAS)](../../active-directory/saas-apps/sap-cloud-platform-identity-authentication-provisioning-tutorial.md) enterprise application in Azure AD to provision identities into SAP IAS. After you bring all the identities into SAP IAS, you can use SAP IPS to provision the accounts from there into your applications when required. +* Use the [SAP IPS](https://help.sap.com/docs/IDENTITY_PROVISIONING/f48e822d6d484fa5ade7dda78b64d9f5/f2b2df8a273642a1bf801e99ecc4a043.html) integration to directly export identities from Azure AD into your [applications](https://help.sap.com/docs/IDENTITY_PROVISIONING/f48e822d6d484fa5ade7dda78b64d9f5/ab3f641552464c79b94d10b9205fd721.html). When you're using SAP IPS to pull users into your applications, all provisioning configuration is managed in SAP directly. You can still use the enterprise application in Azure AD to manage SSO and use [Azure AD as the corporate identity provider](https://help.sap.com/docs/IDENTITY_AUTHENTICATION/6d6d63354d1242d185ab4830fc04feb1/058c7b14209f4f2d8de039da4330a1c1.html). +### Provision identities into on-premises SAP systems that SAP IPS doesn't support +Customers who have yet to transition from applications such as SAP ERP Central Component (SAP ECC) to SAP S/4HANA can still rely on the Azure AD provisioning service to provision user accounts. Within SAP ECC, you expose the necessary Business Application Programming Interfaces (BAPIs) for creating, updating, and deleting users. Within Azure AD, you have two options: ++* Use the lightweight Azure AD provisioning agent and [web services connector](/azure/active-directory/app-provisioning/on-premises-web-services-connector) to provision users into apps such as SAP ECC. +* In scenarios where you need to do more complex group and role management, use [Microsoft Identity Manager](/microsoft-identity-manager/reference/microsoft-identity-manager-2016-ma-ws) to manage access to your legacy SAP applications. ++## Trigger custom workflows ++When a new employee is hired in your organization, you might need to trigger a workflow within your SAP server. By using the [Microsoft Entra Identity Governance lifecycle workflows](lifecycle-workflow-extensibility.md) in conjunction with the [SAP connector in Azure Logic Apps](/azure/logic-apps/logic-apps-using-sap-connector), you can trigger custom actions in SAP upon hiring a new employee. ++## Check for separation of duties ++With separation-of-duties checks now available in preview in Azure AD [entitlement management](https://techcommunity.microsoft.com/t5/azure-active-directory-identity/ensure-compliance-using-separation-of-duties-checks-in-access/ba-p/2466939), customers can ensure that users don't take on excessive access rights: ++* Admins and access managers can prevent users from requesting additional access packages if they're already assigned to other access packages or are a member of other groups that are incompatible with the requested access. +* Enterprises with critical regulatory requirements for SAP apps will have a single consistent view of access controls. They can then enforce separation-of-duties checks across their financial and other business-critical applications, along with Azure AD-integrated applications. +* With [Pathlock](https://pathlock.com/), integration customers can take advantage of fine-grained separation-of-duties checks with access packages in Azure AD. Over time, this ability will help customers address Sarbanes-Oxley and other compliance requirements. ++## Next steps +* [Bring identities from SAP SuccessFactors into Azure AD](../../active-directory/saas-apps/sap-successfactors-inbound-provisioning-cloud-only-tutorial.md) +* [Provision accounts in SAP IAS](../../active-directory/saas-apps/sap-cloud-platform-identity-authentication-provisioning-tutorial.md) |
active-directory | How To Connect Health Agent Install | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/hybrid/connect/how-to-connect-health-agent-install.md | The following table lists requirements for using Azure AD Connect Health: | Requirement | Description | | | | | You have an Azure Active Directory (Azure AD) Premium (P1 or P2) Subscription. |Azure AD Connect Health is a feature of Azure AD Premium (P1 or P2). For more information, see [Sign up for Azure AD Premium](../../fundamentals/active-directory-get-started-premium.md). <br /><br />To start a free 30-day trial, see [Start a trial](https://azure.microsoft.com/trial/get-started-active-directory/). |-| You're a hybrid identity administrator in Azure AD. |By default, only Hybrid Identity Administrator and Global Administrator accounts can install and configure health agents, access the portal, and do any operations within Azure AD Connect Health. For more information, see [Administering your Azure AD directory](../../fundamentals/active-directory-whatis.md). <br /><br /> By using Azure role-based access control (Azure RBAC), you can allow other users in your organization to access Azure AD Connect Health. For more information, see [Azure RBAC for Azure AD Connect Health](how-to-connect-health-operations.md#manage-access-with-azure-rbac). <br /><br />**Important**: Use a work or school account to install the agents. You can't use a Microsoft account to install the agents. For more information, see [Sign up for Azure as an organization](../../fundamentals/sign-up-organization.md). | +| You're a global administrator in Azure AD. |Currently, only Global Administrator accounts can install and configure health agents. For more information, see [Administering your Azure AD directory](../../fundamentals/active-directory-whatis.md). <br /><br /> By using Azure role-based access control (Azure RBAC), you can allow other users in your organization to access Azure AD Connect Health. For more information, see [Azure RBAC for Azure AD Connect Health](how-to-connect-health-operations.md#manage-access-with-azure-rbac). <br /><br />**Important**: Use a work or school account to install the agents. You can't use a Microsoft account to install the agents. For more information, see [Sign up for Azure as an organization](../../fundamentals/sign-up-organization.md). | | The Azure AD Connect Health agent is installed on each targeted server. | Health agents must be installed and configured on targeted servers so that they can receive data and provide monitoring and analytics capabilities. <br /><br />For example, to get data from your Active Directory Federation Services (AD FS) infrastructure, you must install the agent on the AD FS server and on the Web Application Proxy server. Similarly, to get data from your on-premises Azure Active Directory Domain Services (Azure AD DS) infrastructure, you must install the agent on the domain controllers. | | The Azure service endpoints have outbound connectivity. | During installation and runtime, the agent requires connectivity to Azure AD Connect Health service endpoints. If firewalls block outbound connectivity, add the [outbound connectivity endpoints](how-to-connect-health-agent-install.md#outbound-connectivity-to-azure-service-endpoints) to an allowlist. | |Outbound connectivity is based on IP addresses. | For information about firewall filtering based on IP addresses, see [Azure IP ranges](https://www.microsoft.com/download/details.aspx?id=56519).| |
active-directory | Application Management Certs Faq | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/manage-apps/application-management-certs-faq.md | You can find the steps [here](manage-certificates-for-federated-single-sign-on.m By default, Azure AD configures a certificate to expire after three years when it is created automatically during SAML single sign-on configuration. Because you can't change the date of a certificate after you save it, you need to create a new certificate. For steps on how to do so, please refer [Customize the expiration date for your federation certificate and roll it over to a new certificate](manage-certificates-for-federated-single-sign-on.md#customize-the-expiration-date-for-your-federation-certificate-and-roll-it-over-to-a-new-certificate). +> [!NOTE] +> The recommended way to create SAML applications is through the Azure AD Application Gallery, which will automatically create a three-year valid X509 certificate for you. + ## How can I automate the certificates expiration notifications? Azure AD will send an email notification 60, 30, and 7 days before the SAML certificate expires. You may add more than one email address to receive notifications. |
active-directory | Configure Admin Consent Workflow | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/manage-apps/configure-admin-consent-workflow.md | To enable the admin consent workflow and choose reviewers: - **Select users, groups, or roles that will be designated as reviewers for admin consent requests** - Reviewers can view, block, or deny admin consent requests, but only global administrators can approve admin consent requests. People designated as reviewers can view incoming requests in the **My Pending** tab after they have been set as reviewers. Any new reviewers won't be able to act on existing or expired admin consent requests. - **Selected users will receive email notifications for requests** - Enable or disable email notifications to the reviewers when a request is made. - - **Selected users will receive request expiration reminders** - Enable or disable reminder email notifications to the reviewers when a request is about to expire. + - **Selected users will receive request expiration reminders** - Enable or disable reminder email notifications to the reviewers when a request is about to expire. The first about-to-expire reminder email is likely sent out in the middle of the configured "Consent request expires after (days)." For example, if consent is configured to expire in three days, the first reminder email is usually sent out on the second day, and the last expiration email is almost immediately out once the consent is expired. - **Consent request expires after (days)** - Specify how long requests stay valid. 1. Select **Save**. It can take up to an hour for the workflow to become enabled. |
active-directory | Configure Linked Sign On | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/manage-apps/configure-linked-sign-on.md | Some common scenarios where linked-based SSO is valuable include: To configure linked-based SSO in your Azure AD tenant, you need: - An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F)-- One of the following roles: Global Administrator, Cloud Application Administrator, Application Administrator, or owner of the service principal.+- One of the following roles: Global Administrator, Application Administrator, or owner of the service principal. - An application that supports linked-based SSO. ## Configure linked-based single sign-on |
active-directory | Powershell Export Apps With Expiring Secrets | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/manage-apps/scripts/powershell-export-apps-with-expiring-secrets.md | + + Title: PowerShell sample - Export apps with expiring secrets and certificates in Azure Active Directory tenant. +description: PowerShell example that exports all apps with expiring secrets and certificates for the specified apps in your Azure Active Directory tenant. +++++++ Last updated : 03/09/2021+++++# Export apps with expiring secrets and certificates ++This PowerShell script example exports all app registrations with expiring secrets, certificates and their owners for the specified apps from your directory in a CSV file. +++This sample requires the [AzureAD V2 PowerShell for Graph module](/powershell/azure/active-directory/install-adv2) (AzureAD) or the [AzureAD V2 PowerShell for Graph module preview version](/powershell/azure/active-directory/install-adv2?view=azureadps-2.0-preview&preserve-view=true) (AzureADPreview). ++## Sample script ++[!code-azurepowershell[main](~/powershell_scripts/application-management/export-apps-with-expiring-secrets.ps1 "Exports all apps with expiring secrets and certificates for the specified apps in your directory.")] ++## Script explanation ++The script can be used directly without any modifications. The admin will be asked about the expiration date and whether they would like to see already expired secrets or certificates or not. ++The "Add-Member" command is responsible for creating the columns in the CSV file. +The "New-Object" command creates an object to be used for the columns in the CSV file export. +You can modify the "$Path" variable directly in PowerShell, with a CSV file path, in case you'd prefer the export to be non-interactive. ++| Command | Notes | +||| +| [Get-AzureADApplication](/powershell/module/azuread/get-azureadapplication?view=azureadps-2.0&preserve-view=true) | Retrieves an application from your directory. | +| [Get-AzureADApplicationOwner](/powershell/module/azuread/Get-AzureADApplicationOwner?view=azureadps-2.0&preserve-view=true) | Retrieves the owners of an application from your directory. | ++## Next steps ++For more information on the Azure AD PowerShell module, see [Azure AD PowerShell module overview](/powershell/azure/active-directory/overview). ++For other PowerShell examples for Application Management, see [Azure AD PowerShell examples for Application Management](../app-management-powershell-samples.md). |
active-directory | How Manage User Assigned Managed Identities | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/how-manage-user-assigned-managed-identities.md | To list or read a user-assigned managed identity, your account needs to have eit 1. Sign in to the [Azure portal](https://portal.azure.com). 1. In the search box, enter **Managed Identities**. Under **Services**, select **Managed Identities**. 1. A list of the user-assigned managed identities for your subscription is returned. To see the details of a user-assigned managed identity, select its name.-1. You can now view the details about the managed identity as shown in the image below. +1. You can now view the details about the managed identity as shown in the image. :::image type="content" source="media/how-manage-user-assigned-managed-identities/list-user-assigned-managed-identity-portal.png" alt-text="Screenshot that shows the list of user-assigned managed identity."::: Deleting a user-assigned identity doesn't remove it from the VM or resource it w ## Manage access to user-assigned managed identities -In some environments, administrators choose to limit who can manage user-assigned managed identities. You do this by using [built-in](../../role-based-access-control/built-in-roles.md#identity) RBAC roles. You can use these roles to grant a user or group in your organization rights over a user-assigned managed identity. +In some environments, administrators choose to limit who can manage user-assigned managed identities. Administrators can implement this limitation using [built-in](../../role-based-access-control/built-in-roles.md#identity) RBAC roles. You can use these roles to grant a user or group in your organization rights over a user-assigned managed identity. 1. Sign in to the [Azure portal](https://portal.azure.com). 1. In the search box, enter **Managed Identities**. Under **Services**, select **Managed Identities**. |
active-directory | How To Managed Identity Regional Move | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/how-to-managed-identity-regional-move.md | -Moving User-assigned managed identities across Azure regions is not supported. You can however, recreate a user-assigned managed identity in the target region. +Moving User-assigned managed identities across Azure regions isn't supported. You can however, recreate a user-assigned managed identity in the target region. ## Prerequisites |
active-directory | How To Use Vm Sdk | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/how-to-use-vm-sdk.md | |
active-directory | How To Use Vm Token | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/how-to-use-vm-token.md | If you plan to use the Azure PowerShell examples in this article, be sure to ins > - All sample code/script in this article assumes the client is running on a virtual machine with managed identities for Azure resources. Use the virtual machine "Connect" feature in the Azure portal, to remotely connect to your VM. For details on enabling managed identities for Azure resources on a VM, see [Configure managed identities for Azure resources on a VM using the Azure portal](qs-configure-portal-windows-vm.md), or one of the variant articles (using PowerShell, CLI, a template, or an Azure SDK). > [!IMPORTANT]-> - The security boundary of managed identities for Azure resources, is the resource it's being used on. All code/scripts running on a virtual machine can request and retrieve tokens for any managed identities available on it. +> - The security boundary of managed identities for Azure resources, is the resource where the identity is used. All code/scripts running on a virtual machine can request and retrieve tokens for any managed identities available on it. ## Overview For .NET applications and functions, the simplest way to work with managed ident To learn more about Microsoft.Azure.Services.AppAuthentication and the operations it exposes, see the [Microsoft.Azure.Services.AppAuthentication reference](/dotnet/api/overview/azure/service-to-service-authentication) and the [App Service and KeyVault with managed identities for Azure resources .NET sample](https://github.com/Azure-Samples/app-service-msi-keyvault-dotnet). + ## Get a token using C# + ```csharp using System; using System.Collections.Generic; This section documents the possible error responses. A "200 OK" status is a succ It's recommended to retry if you receive a 404, 429, or 5xx error code (see [Error handling](#error-handling) above). If you receive a 410 error, it indicates that IMDS is going through updates and will be available in a maximum of 70 seconds. -Throttling limits apply to the number of calls made to the IMDS endpoint. When the throttling threshold is exceeded, IMDS endpoint limits any further requests while the throttle is in effect. During this period, the IMDS endpoint will return the HTTP status code 429 ("Too many requests"), and the requests fail. +Throttling limits apply to the number of calls made to the IMDS endpoint. When the throttling threshold is exceeded, IMDS endpoint limits any further requests while the throttle is in effect. During this period, the IMDS endpoint returns the HTTP status code 429 ("Too many requests"), and the requests fail. For retry, we recommend the following strategy: |
active-directory | Managed Identities Status | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/managed-identities-status.md | description: List of services supporting managed identities Previously updated : 05/10/2023 Last updated : 05/25/2023 |
active-directory | Qs Configure Cli Windows Vmss | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/qs-configure-cli-windows-vmss.md | ms.devlang: azurecli Managed identities for Azure resources provide Azure services with an automatically managed identity in Azure Active Directory. You can use this identity to authenticate to any service that supports Azure AD authentication, without having credentials in your code. In this article, you learn how to perform the following managed identities for Azure resources operations on an Azure virtual machine scale set, using the Azure CLI:+ - Enable and disable the system-assigned managed identity on an Azure virtual machine scale set - Add and remove a user-assigned managed identity on an Azure virtual machine scale set This section walks you through creation of a virtual machine scale set and assig ### Remove a user-assigned managed identity from an Azure virtual machine scale set -To [remove](/cli/azure/vmss/identity#az-vmss-identity-remove) a user-assigned managed identity from a virtual machine scale set use `az vmss identity remove`. If this is the only user-assigned managed identity assigned to the virtual machine scale set, `UserAssigned` will be removed from the identity type value. Be sure to replace the `<RESOURCE GROUP>` and `<VIRTUAL MACHINE SCALE SET NAME>` parameter values with your own values. The `<USER ASSIGNED IDENTITY>` will be the user-assigned managed identity's `name` property, which can be found in the identity section of the virtual machine scale set using `az vmss identity show`: +To [remove](/cli/azure/vmss/identity#az-vmss-identity-remove) a user-assigned managed identity from a virtual machine scale set use `az vmss identity remove`. If this is the only user-assigned managed identity assigned to the virtual machine scale set, `UserAssigned` is removed from the identity type value. Be sure to replace the `<RESOURCE GROUP>` and `<VIRTUAL MACHINE SCALE SET NAME>` parameter values with your own values. The `<USER ASSIGNED IDENTITY>` is the user-assigned managed identity's `name` property, which can be found in the identity section of the virtual machine scale set using `az vmss identity show`: ```azurecli-interactive az vmss identity remove -g <RESOURCE GROUP> -n <VIRTUAL MACHINE SCALE SET NAME> --identities <USER ASSIGNED IDENTITY> ``` -If your virtual machine scale set does not have a system-assigned managed identity and you want to remove all user-assigned managed identities from it, use the following command: +If your virtual machine scale set doesn't have a system-assigned managed identity and you want to remove all user-assigned managed identities from it, use the following command: > [!NOTE] > The value `none` is case sensitive. It must be lowercase. |
active-directory | Qs Configure Powershell Windows Vm | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/qs-configure-powershell-windows-vm.md | In this article, using PowerShell, you learn how to perform the following manage ## System-assigned managed identity -In this section, you'll learn how to enable and disable the system-assigned managed identity using Azure PowerShell. +In this section, we go over how to enable and disable the system-assigned managed identity using Azure PowerShell. ### Enable system-assigned managed identity during creation of an Azure VM To assign a user-assigned identity to a VM, your account needs the [Virtual Mach To remove a user-assigned identity to a VM, your account needs the [Virtual Machine Contributor](../../role-based-access-control/built-in-roles.md#virtual-machine-contributor) role assignment. -If your VM has multiple user-assigned managed identities, you can remove all but the last one using the following commands. Be sure to replace the `<RESOURCE GROUP>` and `<VM NAME>` parameter values with your own values. The `<USER ASSIGNED IDENTITY NAME>` is the user-assigned managed identity's name property, which should remain on the VM. This information can be found by querying the `Identity` property of the VM object. For example, `$vm.Identity`: +If your VM has multiple user-assigned managed identities, you can remove all but the last one using the following commands. Be sure to replace the `<RESOURCE GROUP>` and `<VM NAME>` parameter values with your own values. The `<USER ASSIGNED IDENTITY NAME>` is the user-assigned managed identity's name property, which should remain on the VM. This information is discoverable using a query to search for the `Identity` property of the VM object. For example, `$vm.Identity`: ```azurepowershell-interactive $vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm |
active-directory | Qs Configure Rest Vm | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/qs-configure-rest-vm.md | |
active-directory | Qs Configure Rest Vmss | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/qs-configure-rest-vmss.md | ms.devlang: azurecli # Configure managed identities for Azure resources on a virtual machine scale set using REST API calls - Managed identities for Azure resources provide Azure services with an automatically managed system identity in Azure Active Directory. You can use this identity to authenticate to any service that supports Azure AD authentication, without having credentials in your code. In this article, using CURL to make calls to the Azure Resource Manager REST endpoint, you learn how to perform the following managed identities for Azure resources operations on a virtual machine scale set: |
active-directory | Tutorial Linux Vm Access Arm | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-arm.md | -This quickstart shows you how to use a system-assigned identity for a Linux virtual machine (VM) to access the Azure Resource Manager API. Managed identities for Azure resources are automatically managed by Azure and enable you to authenticate to services that support Azure AD authentication without needing to insert credentials into your code. +This quickstart shows you how to use a system-assigned managed identity as a Linux virtual machine (VM)'s identity to access the Azure Resource Manager API. Managed identities for Azure resources are automatically managed by Azure and enable you to authenticate to services that support Azure AD authentication without needing to insert credentials into your code. You learn how to: > [!div class="checklist"] You learn how to: ## Prerequisites -- An understanding of Managed identities. If you're not familiar with the managed identities for Azure resources feature, see this [overview](overview.md). +- An understanding of Managed identities. If you're not familiar with managed identities, see this [overview](overview.md). - An Azure account, [sign up for a free account](https://azure.microsoft.com/free/). - You also need a Linux Virtual machine that has system assigned managed identities enabled. If you have a VM but need to enable [system assigned managed identities](qs-configure-portal-windows-vm.md) you can do it in the identity section of the virtual machine's properties. - If you need to create a virtual machine for this tutorial, you can follow the article titled [Create a Linux virtual machine with the Azure portal](../../virtual-machines/linux/quick-create-portal.md#create-virtual-machine) ## Grant access -Using managed identities for Azure resources, your code can get access tokens to authenticate to resources that support Azure AD authentication. The Azure Resource Manager API supports Azure AD authentication. First, we need to grant this VM's identity access to a resource in Azure Resource Manager, in this case, the Resource Group in which the VM is contained. +When you use managed identities for Azure resources, your code can get access tokens to authenticate to resources that support Azure AD authentication. The Azure Resource Manager API supports Azure AD authentication. First, we need to grant this VM's identity access to a resource in Azure Resource Manager, in this case, the Resource Group in which the VM is contained. 1. Sign in to the [Azure portal](https://portal.azure.com) with your administrator account. 1. Navigate to the tab for **Resource Groups**. Using managed identities for Azure resources, your code can get access tokens to ## Get an access token using the VM's system-assigned managed identity and use it to call Resource Manager -To complete these steps, you'll need an SSH client. If you're using Windows, you can use the SSH client in the [Windows Subsystem for Linux](/windows/wsl/about). If you need assistance configuring your SSH client's keys, see [How to Use SSH keys with Windows on Azure](../../virtual-machines/linux/ssh-from-windows.md), or [How to create and use an SSH public and private key pair for Linux VMs in Azure](../../virtual-machines/linux/mac-create-ssh-keys.md). +To complete these steps, you need an SSH client. If you're using Windows, you can use the SSH client in the [Windows Subsystem for Linux](/windows/wsl/about). If you need assistance configuring your SSH client's keys, see [How to Use SSH keys with Windows on Azure](../../virtual-machines/linux/ssh-from-windows.md), or [How to create and use an SSH public and private key pair for Linux VMs in Azure](../../virtual-machines/linux/mac-create-ssh-keys.md). 1. In the portal, navigate to your Linux VM and in the **Overview**, select **Connect**.   2. **Connect** to the VM with the SSH client of your choice.  |
active-directory | Tutorial Linux Vm Access Datalake | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-datalake.md | In Data Lake Store, create a new folder and grant our Linux VM system-assigned m 2. Select the Data Lake Store instance that you want to use. 3. Select **Data Explorer** on the command bar. 4. The root folder of the Data Lake Store instance is selected. Select **Access** on the command bar.-5. Select **Add**. In the **Select** box, enter the name of your VM--for example, **DevTestVM**. Select your VM from the search results, and then click **Select**. -6. Click **Select Permissions**. Select **Read** and **Execute**, add to **This folder**, and add as **An access permission only**. Select **Ok**. The permission should be added successfully. +5. Select **Add**. In the **Select** box, enter the name of your VM--for example, **DevTestVM**. Select your VM from the search results, and then select **Select**. +6. Select **Select Permissions**. Select **Read** and **Execute**, add to **This folder**, and add as **An access permission only**. Select **Ok**. The permission should be added successfully. 7. Close the **Access** pane. 8. For this tutorial, create a new folder. Select **New Folder** on the command bar, and give the new folder a name--for example **TestFolder**. Select **Ok**. 9. Select the folder that you created, and then select **Access** on the command bar.-10. Similar to step 5, select **Add**. In the **Select** box, enter the name of your VM. Select your VM from the search results, and then click **Select**. +10. Similar to step 5, select **Add**. In the **Select** box, enter the name of your VM. Select your VM from the search results, and then select **Select**. 11. Similar to step 6, select **Select Permissions**. Select **Read**, **Write**, and **Execute**, add to **This folder**, and add as **An access permission entry and a default permission entry**. Select **Ok**. The permission should be added successfully. Managed identities for Azure resources can now perform all operations on files in the folder that you created. For more information on managing access to Data Lake Store, see [Access Control in Data Lake Store](../../data-lake-store/data-lake-store-access-control.md). |
active-directory | Tutorial Windows Vm Access Nonaad | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-nonaad.md | documentationcenter: '' editor: daveba- na Previously updated : 02/18/2022 Last updated : 05/25/2023 #Customer intent: As a developer or administrator I want to configure a Windows virtual machine to retrieve a secret from key vault using a managed identity and have a simple way to validate my configuration before using it for development |
active-directory | Tutorial Windows Vm Access Sql | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-sql.md | There are two steps to granting your VM access to a database: **To [configure Azure AD authentication](/azure/azure-sql/database/authentication-aad-configure):** 1. In the Azure portal, select **SQL servers** from the left-hand navigation.-2. Click the SQL server to be enabled for Azure AD authentication. +2. Select the SQL server to be enabled for Azure AD authentication. 3. In the **Settings** section of the blade, click **Active Directory admin**. 4. In the command bar, click **Set admin**. 5. Select an Azure AD user account to be made an administrator of the server, and click **Select.** 6. In the command bar, click **Save.** + ### Create contained user This section shows how to create a contained user in the database that represents the VM's system assigned identity. For this step, you need [Microsoft SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS). Before beginning, it may also be helpful to review the following articles for background on Azure AD integration: This section shows how to create a contained user in the database that represent - [Universal Authentication with SQL Database and Azure Synapse Analytics (SSMS support for MFA)](/azure/azure-sql/database/authentication-mfa-ssms-overview) - [Configure and manage Azure Active Directory authentication with SQL Database or Azure Synapse Analytics](/azure/azure-sql/database/authentication-aad-configure) -SQL DB requires unique Azure AD display names. With this, the Azure AD accounts such as users, groups and Service Principals (applications), and VM names enabled for managed identity must be uniquely defined in Azure AD regarding their display names. SQL DB checks the Azure AD display name during T-SQL creation of such users and if it is not unique, the command fails requesting to provide a unique Azure AD display name for a given account. +SQL DB requires unique Azure AD display names. With this, the Azure AD accounts such as users, groups and Service Principals (applications), and VM names enabled for managed identity must be uniquely defined in Azure AD regarding their display names. SQL DB checks the Azure AD display name during T-SQL creation of such users and if it isn't unique, the command fails requesting to provide a unique Azure AD display name for a given account. **To create a contained user:** SQL DB requires unique Azure AD display names. With this, the Azure AD accounts 6. In the **Connect to database** field, enter the name of the non-system database you want to configure. 7. Click **Connect**. Complete the sign-in process. 8. In the **Object Explorer**, expand the **Databases** folder.-9. Right-click on a user database and click **New query**. +9. Right-click on a user database and select **New query**. 10. In the query window, enter the following line, and click **Execute** in the toolbar: > [!NOTE] SQL DB requires unique Azure AD display names. With this, the Azure AD accounts 11. Clear the query window, enter the following line, and click **Execute** in the toolbar: > [!NOTE]- > `VMName` in the following command is the name of the VM that you enabled system assigned identity on in the prerequsites section. + > `VMName` in the following command is the name of the VM that you enabled system assigned identity on in the prerequisites section. ```sql ALTER ROLE db_datareader ADD MEMBER [VMName] |
active-directory | Recommendation Migrate From Adal To Msal | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/reports-monitoring/recommendation-migrate-from-adal-to-msal.md | + + Title: Azure Active Directory recommendation - Migrate from ADAL to MSAL | Microsoft Docs +description: Learn why you should migrate from the Azure Active Directory Library to the Microsoft Authentication Libraries. +++++++ Last updated : 05/26/2023+++++++# Azure AD recommendation: Migrate from the Azure Active Directory Library to the Microsoft Authentication Libraries ++[Azure AD recommendations](overview-recommendations.md) is a feature that provides you with personalized insights and actionable guidance to align your tenant with recommended best practices. ++This article covers the recommendation to migrate from the Azure Active Directory Library to the Microsoft Authentication Libraries. This recommendation is called `AdalToMsalMigration` in the recommendations API in Microsoft Graph. ++## Description ++The Azure Active Directory Authentication Library (ADAL) is [currently slated for end-of-support](../fundamentals/whats-new.md#adal-end-of-support-announcement) on June 30, 2023. We recommend that customers migrate to Microsoft Authentication Libraries (MSAL), which replaces ADAL. ++This recommendation shows up if your tenant has applications that still use ADAL. ++## Value ++MSAL is designed to enable a secure solution without developers having to worry about the implementation details. MSAL simplifies how tokens are acquired, managed, cached, and refreshed. MSAL also uses best practices for resilience. For more information on migrating to MSAL, see [Migrate applications to MSAL](../develop/msal-migration.md). ++Existing apps that use ADAL will continue to work after the end-of-support date. ++## Action plan ++The first step to migrating your apps from ADAL to MSAL is to identify all applications in your tenant that are currently using ADAL. You can identify your apps in the Azure portal or programmatically. ++### Identify your apps in the Azure portal ++There are four steps to identifying and updating your apps in the Azure portal. The following steps are covered in detail in the [List all apps using ADAL](../develop/howto-get-list-of-all-active-directory-auth-library-apps.md) article. ++1. Send Azure AD sign-in event to Azure Monitor. +1. [Access the sign-ins workbook in Azure AD.](../develop/howto-get-list-of-all-active-directory-auth-library-apps.md) +1. Identify the apps that use ADAL. +1. Update your code. + - The steps to update your code vary depending on the type of application. + - For example, the steps for .NET and Python applications have separate instructions. + - For a full list of instructions for each scenario, see [How to migrate to MSAL](../develop/msal-migration.md#how-to-migrate-to-msal). ++### Identify your apps with the Microsoft Graph API ++You can use Microsoft Graph to identify apps that need to be migrated to MSAL. To get started, see [How to use Microsoft Graph with Azure AD recommendations](howto-use-recommendations.md#how-to-use-microsoft-graph-with-azure-active-directory-recommendations). ++Run the following query in Microsoft Graph, replacing the `<TENANT_ID>` placeholder with your tenant ID. This query returns a list of the impacted resources in your tenant. ++```http +https://graph.microsoft.com/beta/directory/recommendations/<TENANT_ID>_Microsoft.Identity.IAM.Insights.AdalToMsalMigration/impactedResources +``` ++The following response provides the details of the impacted resources using ADAL: ++```json +{ + "id": "<APPLICATION_ID>", + "subjectId": "<APPLICATION_ID>", + "recommendationId": "TENANT_ID_Microsoft.Identity.IAM.Insights.AdalToMsalMigration", + "resourceType": "app", + "addedDateTime": "2023-03-29T09:29:01.1708723Z", + "postponeUntilDateTime": null, + "lastModifiedDateTime": "0001-01-01T00:00:00Z", + "lastModifiedBy": "System", + "displayName": "sample-adal-app", + "owner": null, + "rank": 1, + "portalUrl": " +df.onecloud.azure-test.net/#view/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/~/Branding/appId/{0}" + "apiUrl": null, + "status": "completedBySystem", + "additionalDetails": [ + { + "key": "Library", + "value": "ADAL.Net" + } + ] +} +``` ++### Identify your apps with Microsoft Graph PowerShell SDK ++You can run the following set of commands in Windows PowerShell. These commands use the [Microsoft Graph PowerShell SDK](/graph/powershell/installation) to get a list of all applications in your tenant that use ADAL. ++1. Open Windows PowerShell as an administrator. ++1. Connect to Microsoft Graph: + - `Connect-MgGraph-Tenant <YOUR_TENANT_ID>` ++1. Select your profile: + - `Select-MgProfile beta` ++1. Get a list of your recommendations: + - `Get-MgDirectoryRecommendation | Format-List` ++1. Update the code for your apps using the instructions in [How to migrate to MSAL](../develop/msal-migration.md#how-to-migrate-to-msal). ++## Next steps ++- [Review the Azure AD recommendations overview](overview-recommendations.md) +- [Learn how to use Azure AD recommendations](howto-use-recommendations.md) +- [Explore the Microsoft Graph API properties for recommendations](/graph/api/resources/recommendation) |
active-directory | Issuer Openid | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/verifiable-credentials/issuer-openid.md | |
aks | Open Service Mesh Istio Migration Guidance | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/open-service-mesh-istio-migration-guidance.md | If you are not using OSM and are new to Istio, start with [Istio's own Getting S - An Azure subscription. If you don't have an Azure subscription, you can create a [free account](https://azure.microsoft.com/free). - [Azure CLI installed](/cli/azure/install-azure-cli).-- OSM is uninstalled from your Kubernetes cluster+- The OSM AKS add-on is uninstalled from your AKS cluster - Any existing OSM Bookstore application, including namespaces, is uninstalled and deleted from your cluster-- [Install the Istio AKS service mesh add-on](/azure/aks/istio-deploy-addon.md)+- [Install the Istio AKS service mesh add-on](istio-deploy-addon.md) ## Modifications needed to the OSM Sample Bookstore Application |
aks | Operator Best Practices Cluster Isolation | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/operator-best-practices-cluster-isolation.md | Title: Best practices for cluster isolation + Title: Cluster isolation best practices for Azure Kubernetes Service (AKS) -description: Learn the cluster operator best practices for isolation in Azure Kubernetes Service (AKS) +description: Learn the cluster operator best practices for isolation in Azure Kubernetes Service (AKS). Previously updated : 03/09/2021 Last updated : 05/25/2023 # Best practices for cluster isolation in Azure Kubernetes Service (AKS) -As you manage clusters in Azure Kubernetes Service (AKS), you often need to isolate teams and workloads. AKS provides flexibility in how you can run multi-tenant clusters and isolate resources. To maximize your investment in Kubernetes, first understand and implement AKS multi-tenancy and isolation features. +As you manage clusters in Azure Kubernetes Service (AKS), you often need to isolate teams and workloads. AKS allows flexibility in how you run multi-tenant clusters and isolate resources. To maximize your investment in Kubernetes, it's important you understand AKS multi-tenancy and isolation features. This best practices article focuses on isolation for cluster operators. In this article, you learn how to: > [!div class="checklist"]-> * Plan for multi-tenant clusters and separation of resources -> * Use logical or physical isolation in your AKS clusters +> +> * Plan for multi-tenant clusters and separation of resources. +> * Use logical or physical isolation in your AKS clusters. ## Design clusters for multi-tenancy -Kubernetes lets you logically isolate teams and workloads in the same cluster. The goal is to provide the least number of privileges, scoped to the resources each team needs. A Kubernetes [Namespace][k8s-namespaces] creates a logical isolation boundary. Additional Kubernetes features and considerations for isolation and multi-tenancy include the following areas: +Kubernetes lets you logically isolate teams and workloads in the same cluster. The goal is to provide the least number of privileges scoped to the resources each team needs. A Kubernetes [Namespace][k8s-namespaces] creates a logical isolation boundary. Other Kubernetes features and considerations for isolation and multi-tenancy include the following areas: ++- [Best practices for cluster isolation in Azure Kubernetes Service (AKS)](#best-practices-for-cluster-isolation-in-azure-kubernetes-service-aks) + - [Design clusters for multi-tenancy](#design-clusters-for-multi-tenancy) + - [Scheduling](#scheduling) + - [Networking](#networking) + - [Authentication and authorization](#authentication-and-authorization) + - [Containers](#containers) + - [Logically isolated clusters](#logically-isolated-clusters) + - [Physically isolated clusters](#physically-isolated-clusters) + - [Next steps](#next-steps) ### Scheduling -*Scheduling* uses basic features such as resource quotas and pod disruption budgets. For more information about these features, see [Best practices for basic scheduler features in AKS][aks-best-practices-scheduler]. +*Scheduling* uses basic features like resource quotas and pod disruption budgets. For more information about these features, see [Best practices for basic scheduler features in AKS][aks-best-practices-scheduler]. More advanced scheduler features include:-* Taints and tolerations -* Node selectors -* Node and pod affinity or anti-affinity. ++* Taints and tolerations. +* Node selectors. +* Node and pod affinity or anti-affinity. For more information about these features, see [Best practices for advanced scheduler features in AKS][aks-best-practices-advanced-scheduler]. For more information about these features, see [Best practices for advanced sche ### Authentication and authorization *Authentication and authorization* uses:-* Role-based access control (RBAC) -* Azure Active Directory (AD) integration -* Pod identities -* Secrets in Azure Key Vault ++* Role-based access control (RBAC). +* Azure Active Directory (AD) integration. +* Pod identities. +* Secrets in Azure Key Vault. For more information about these features, see [Best practices for authentication and authorization in AKS][aks-best-practices-identity]. ### Containers+ *Containers* include:-* The Azure Policy Add-on for AKS to enforce pod security. -* The use of pod security admission. -* Scanning both images and the runtime for vulnerabilities. ++* The Azure Policy add-on for AKS to enforce pod security. +* Pod security admission. +* Scanning images and runtime for vulnerabilities. * Using App Armor or Seccomp (Secure Computing) to restrict container access to the underlying node. -## Logically isolate clusters +## Logically isolated clusters > **Best practice guidance** > > Separate teams and projects using *logical isolation*. Minimize the number of physical AKS clusters you deploy to isolate teams or applications. -With logical isolation, a single AKS cluster can be used for multiple workloads, teams, or environments. Kubernetes [Namespaces][k8s-namespaces] form the logical isolation boundary for workloads and resources. +With logical isolation, you can use a single AKS cluster for multiple workloads, teams, or environments. Kubernetes [Namespaces][k8s-namespaces] form the logical isolation boundary for workloads and resources.  -Logical separation of clusters usually provides a higher pod density than physically isolated clusters, with less excess compute capacity sitting idle in the cluster. When combined with the Kubernetes cluster autoscaler, you can scale the number of nodes up or down to meet demands. This best practice approach to autoscaling minimizes costs by running only the number of nodes required. +Logical separation of clusters usually provides a higher pod density than physically isolated clusters, with less excess compute capacity sitting idle in the cluster. When combined with the Kubernetes cluster autoscaler, you can scale the number of nodes up or down to meet demands. This best practice approach minimizes costs by running only the required number of nodes. -Currently, Kubernetes environments aren't completely safe for hostile multi-tenant usage. In a multi-tenant environment, multiple tenants are working on a common, shared infrastructure. If all tenants cannot be trusted, you will need extra planning to prevent tenants from impacting the security and service of others. +Kubernetes environments aren't entirely safe for hostile multi-tenant usage. In a multi-tenant environment, multiple tenants work on a shared infrastructure. If all tenants can't be trusted, you need extra planning to prevent tenants from impacting the security and service of others. -Additional security features, like Kubernetes RBAC for nodes, efficiently block exploits. For true security when running hostile multi-tenant workloads, you should only trust a hypervisor. The security domain for Kubernetes becomes the entire cluster, not an individual node. +Other security features, like Kubernetes RBAC for nodes, efficiently block exploits. For true security when running hostile multi-tenant workloads, you should only trust a hypervisor. The security domain for Kubernetes becomes the entire cluster and not an individual node. For these types of hostile multi-tenant workloads, you should use physically isolated clusters. -## Physically isolate clusters +## Physically isolated clusters -> **Best practice guidance** +> **Best practice guidance** >-> Minimize the use of physical isolation for each separate team or application deployment. Instead, use *logical* isolation, as discussed in the previous section. +> Minimize the use of physical isolation for each separate team or application deployment and use *logical* isolation instead. -Physically separating AKS clusters is a common approach to cluster isolation. In this isolation model, teams or workloads are assigned their own AKS cluster. While physical isolation might look like the easiest way to isolate workloads or teams, it adds management and financial overhead. Now, you must maintain these multiple clusters and individually provide access and assign permissions. You'll also be billed for each the individual node. +Physically separating AKS clusters is a common approach to cluster isolation. In this isolation model, teams or workloads are assigned their own AKS cluster. While physical isolation might look like the easiest way to isolate workloads or teams, it adds management and financial overhead. With physically isolated clusters, you must maintain multiple clusters and individually provide access and assign permissions. You're also billed for each individual node.  -Physically separate clusters usually have a low pod density. Since each team or workload has their own AKS cluster, the cluster is often over-provisioned with compute resources. Often, a small number of pods are scheduled on those nodes. Unclaimed node capacity can't be used for applications or services in development by other teams. These excess resources contribute to the additional costs in physically separate clusters. +Physically isolated clusters usually have a low pod density. Since each team or workload has their own AKS cluster, the cluster is often over-provisioned with compute resources. Often, a few pods are scheduled on those nodes. Unclaimed node capacity can't be used for applications or services in development by other teams. These excess resources contribute to the extra costs in physically isolated clusters. ## Next steps -This article focused on cluster isolation. For more information about cluster operations in AKS, see the following best practices: +This article focused on cluster isolation. For more information about cluster operations in AKS, see the following best practice articles: * [Basic Kubernetes scheduler features][aks-best-practices-scheduler] * [Advanced Kubernetes scheduler features][aks-best-practices-advanced-scheduler] |
aks | Out Of Tree | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/out-of-tree.md | Title: Enable Cloud Controller Manager -description: Learn how to enable the Out of Tree cloud provider + Title: Enable Cloud Controller Manager (preview) +description: Learn how to enable the Out of Tree cloud provider (preview) Last updated 04/08/2022 -# Enable Cloud Controller Manager +# Enable Cloud Controller Manager (preview) -As a Cloud Provider, Microsoft Azure works closely with the Kubernetes community to support our infrastructure on behalf of users. +As a cloud provider, Microsoft Azure works closely with the Kubernetes community to support our infrastructure on behalf of users. -Previously, Cloud provider integration with Kubernetes was "in-tree", where any changes to Cloud specific features would follow the standard Kubernetes release cycle. When issues were fixed or enhancements were rolled out, they would need to be within the Kubernetes community's release cycle. +Previously, cloud provider integration with Kubernetes was "in-tree", where any changes to cloud specific features would follow the standard Kubernetes release cycle. When issues were fixed or enhancements were rolled out, they would need to be within the Kubernetes community's release cycle. -The Kubernetes community is now adopting an "out-of-tree" model where the Cloud providers will control their releases independently of the core Kubernetes release schedule through the [cloud-provider-azure][cloud-provider-azure] component. As part of this cloud-provider-azure component, we are also introducing a cloud-node-manager component, which is a component of the Kubernetes node lifecycle controller. This component is deployed by a DaemonSet in the *kube-system* namespace. To view this component, use +The Kubernetes community is now adopting an *out-of-tree* model, where the cloud providers control their releases independently of the core Kubernetes release schedule through the [cloud-provider-azure][cloud-provider-azure] component. As part of this cloud-provider-azure component, we are also introducing a cloud-node-manager component, which is a component of the Kubernetes node lifecycle controller. This component is deployed by a DaemonSet in the *kube-system* namespace. -```azurecli-interactive -kubectl get po -n kube-system | grep cloud-node-manager -``` +The Cloud Storage Interface (CSI) drivers are included by default in Kubernetes version 1.21 and higher. -We recently rolled out the Cloud Storage Interface (CSI) drivers to be the default in Kubernetes version 1.21 and above. +> [!NOTE] +> When you enable the Cloud Controller Manager (preview) on your AKS cluster, it also enables the out of tree CSI drivers. -> [!Note] -> When enabling Cloud Controller Manager on your AKS cluster, this will also enable the out of tree CSI drivers. --The Cloud Controller Manager is the default controller from Kubernetes 1.22, supported by AKS. If running < v1.22, follow instructions below. +The Cloud Controller Manager (preview) is the default controller from Kubernetes 1.22, supported by AKS. If your cluster is running a version earlier than 1.22, perform the following steps. ## Prerequisites+ You must have the following resources installed: * The Azure CLI-* Kubernetes version 1.20.x or above +* Kubernetes version 1.20.x and higher ## Install the aks-preview Azure CLI extension When the status reflects *Registered*, refresh the registration of the *Microsof az provider register --namespace Microsoft.ContainerService ``` -## Create a new AKS cluster with Cloud Controller Manager with version <1.22 +## Create a new AKS cluster with Cloud Controller Manager -To create a cluster using the Cloud Controller Manager, pass `EnableCloudControllerManager=True` as a customer header to the Azure API using the Azure CLI. +To create a cluster using the Cloud Controller Manager, run the following command. Include the parameter `EnableCloudControllerManager=True` as a customer header to the Azure API using the Azure CLI. ```azurecli-interactive-az group create --name myResourceGroup --location eastus az aks create -n aks -g myResourceGroup --aks-custom-headers EnableCloudControllerManager=True ``` -## Upgrade an AKS cluster to Cloud Controller Manager on an existing cluster with version <1.22 +## Upgrade an AKS cluster to Cloud Controller Manager on an existing cluster -To upgrade a cluster to use the Cloud Controller Manager, pass `EnableCloudControllerManager=True` as a customer header to the Azure API using the Azure CLI. +To upgrade a cluster to use the Cloud Controller Manager, run the following command. Include the parameter `EnableCloudControllerManager=True` as a customer header to the Azure API using the Azure CLI. ```azurecli-interactive az aks upgrade -n aks -g myResourceGroup -k <version> --aks-custom-headers EnableCloudControllerManager=True ``` -## Next steps +## Verify component deployment -- For more information on CSI drivers, and the default behavior for Kubernetes versions above 1.21, please see our [documentation][csi-docs].+To view this component, run the following Azure CLI command: ++```azurecli-interactive +kubectl get po -n kube-system | grep cloud-node-manager +``` ++## Next steps -- You can find more information about the Kubernetes community direction regarding Out of Tree providers on the [community blog post][community-blog].+- For more information on CSI drivers, and the default behavior for Kubernetes versions higher than 1.21, review [documentation][csi-docs]. +- You can find more information about the Kubernetes community direction regarding out of tree providers on the [community blog post][community-blog]. <!-- LINKS - internal --> [az-provider-register]: /cli/azure/provider#az-provider-register |
aks | Start Stop Cluster | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/start-stop-cluster.md | When using the cluster stop/start feature, the following conditions apply: - This feature is only supported for Virtual Machine Scale Set backed clusters. - The cluster state of a stopped AKS cluster is preserved for up to 12 months. If your cluster is stopped for more than 12 months, you can't recover the state. For more information, see the [AKS support policies](support-policies.md).-- You can only start or delete a stopped AKS cluster. To perform other operations, like scaling or upgrading, you need to start your cluster first.+- You can only perform start or delete operations on a stopped AKS cluster. To perform other operations, like scaling or upgrading, you need to start your cluster first. - If you provisioned PrivateEndpoints linked to private clusters, they need to be deleted and recreated again when starting a stopped AKS cluster. - Because the stop process drains all nodes, any standalone pods (i.e. pods not managed by a Deployment, StatefulSet, DaemonSet, Job, etc.) will be deleted. - When you start your cluster back up, the following behavior is expected: |
automation | Automation Managing Data | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/automation-managing-data.md | Title: Azure Automation data security description: This article helps you learn how Azure Automation protects your privacy and secures your data. Previously updated : 04/02/2023 Last updated : 05/26/2023 When you delete an Automation account in Azure, all objects in the account are d ### Runbooks -You can export your runbooks to script files using either the Azure portal or the [Get-AzureAutomationRunbookDefinition](/powershell/module/servicemanagement/azure.service/get-azureautomationrunbookdefinition) cmdlet in Windows PowerShell. You can import these script files into another Automation account, as discussed in [Manage runbooks in Azure Automation](manage-runbooks.md). +You can export your runbooks to script files using either the Azure portal or the [Get-AzureAutomationRunbookDefinition](/powershell/module/servicemanagement/azure/get-azureautomationrunbookdefinition) cmdlet in Windows PowerShell. You can import these script files into another Automation account, as discussed in [Manage runbooks in Azure Automation](manage-runbooks.md). ### Integration modules |
automation | Automation Solution Vm Management Config | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/automation-solution-vm-management-config.md | -> Start/Stop VM during off-hours version 1 is unavailable in the marketplace now as it will retire by 30 September 2023. We recommend you start using [version 2](../azure-functions/start-stop-vms/overview.md), -which is now generally available. The new version offers all existing capabilities and provides new features, such as multi-subscription support from a single Start/Stop instance. If you have the version 1 solution already deployed, you can still use the feature, and we will provide support until 30 September 2023. The details of the announcement will be shared soon. +> Start/Stop VM during off-hours version 1 is unavailable in the marketplace now as it will retire by 30 September 2023. We recommend you start using [version 2](../azure-functions/start-stop-vms/overview.md), which is now generally available. The new version offers all existing capabilities and provides new features, such as multi-subscription support from a single Start/Stop instance. If you have the version 1 solution already deployed, you can still use the feature, and we will provide support until 30 September 2023. The details of the announcement will be shared soon. This article describes how to configure the [Start/Stop VMs during off-hours](automation-solution-vm-management.md) feature to support the described scenarios. You can also learn how to: The feature allows you to add VMs to be targeted or excluded. There are two ways to ensure that a VM is included when the feature runs: -* Each of the parent runbooksof the feature has a `VMList` parameter. You can pass a comma-separated list of VM names (without spaces) to this parameter when scheduling the appropriate parent runbook for your situation, and these VMs will be included when the feature runs. +* Each of the parent runbooks of the feature has a `VMList` parameter. You can pass a comma-separated list of VM names (without spaces) to this parameter when scheduling the appropriate parent runbook for your situation, and these VMs will be included when the feature runs. * To select multiple VMs, set `External_Start_ResourceGroupNames` and `External_Stop_ResourceGroupNames` with the resource group names that contain the VMs you want to start or stop. You can also set the variables to a value of `*` to have the feature run against all resource groups in the subscription. |
automation | Automation Use Azure Ad | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/automation-use-azure-ad.md | Title: Use Azure AD in Azure Automation to authenticate to Azure description: This article tells how to use Azure AD within Azure Automation as the provider for authentication to Azure. Previously updated : 09/23/2021 Last updated : 05/26/2023 You can use the Azure portal to create the credential asset. Do this operation f ### Create the credential asset with Windows PowerShell -To prepare a new credential asset in Windows PowerShell, your script first creates a `PSCredential` object using the assigned user name and password. The script then uses this object to create the asset through a call to the [New-AzureAutomationCredential](/powershell/module/servicemanagement/azure.service/new-azureautomationcredential) cmdlet. Alternatively, the script can call the [Get-Credential](/powershell/module/microsoft.powershell.security/get-credential) cmdlet to prompt the user to type in a name and password. See [Credential assets in Azure Automation](shared-resources/credentials.md). +To prepare a new credential asset in Windows PowerShell, your script first creates a `PSCredential` object using the assigned user name and password. The script then uses this object to create the asset through a call to the [New-AzureAutomationCredential](/powershell/module/servicemanagement/azure/new-azureautomationcredential) cmdlet. Alternatively, the script can call the [Get-Credential](/powershell/module/microsoft.powershell.security/get-credential) cmdlet to prompt the user to type in a name and password. See [Credential assets in Azure Automation](shared-resources/credentials.md). ++ ## Manage Azure resources from an Azure Automation runbook |
automation | Runbook Input Parameters | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/runbook-input-parameters.md | Title: Configure runbook input parameters in Azure Automation description: This article tells how to configure runbook input parameters, which allow data to be passed to a runbook when it's started. Previously updated : 04/03/2023 Last updated : 05/26/2023 For PowerShell 7.1 runbooks, provide array input parameters in below format: To illustrate the configuration of input parameters for a graphical runbook, let's create a runbook that outputs details about virtual machines, either a single VM or all VMs within a resource group. For details, see [My first graphical runbook](./learn/powershell-runbook-managed-identity.md). -A graphical runbook uses these these major runbook activities: +A graphical runbook uses these major runbook activities: * Configuration of the Azure Run As account to authenticate with Azure. * Definition of a [Get-AzVM](/powershell/module/az.compute/get-azvm) cmdlet to get VM properties. In the label beneath the input box, you can see the properties that have been se Start-AzAutomationRunbook -AutomationAccountName "TestAutomation" -Name "Get-AzureVMGraphical" ΓÇôResourceGroupName $resourceGroupName -Parameters $params ``` -* **Azure classic deployment model cmdlets:** You can start an automation runbook that was created in a default resource group by using [Start-AzureAutomationRunbook](/powershell/module/servicemanagement/azure.service/start-azureautomationrunbook). +* **Azure classic deployment model cmdlets:** You can start an automation runbook that was created in a default resource group by using [Start-AzureAutomationRunbook](/powershell/module/servicemanagement/azure/start-azureautomationrunbook). ```powershell $params = @{"VMName"="WSVMClassic"; "ServiceName"="WSVMClassicSG"} Now you can call the runbook from your local machine by using Azure PowerShell. ## Next steps * To prepare a textual runbook, see [Edit textual runbooks in Azure Automation](automation-edit-textual-runbook.md).-* To prepare a graphical runbook, see [Author graphical runbooks in Azure Automation](automation-graphical-authoring-intro.md). +* To prepare a graphical runbook, see [Author graphical runbooks in Azure Automation](automation-graphical-authoring-intro.md). |
automation | Certificates | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/shared-resources/certificates.md | Title: Manage certificates in Azure Automation description: This article tells how to work with certificates for access by runbooks and DSC configurations. Previously updated : 01/04/2023 Last updated : 05/26/2023 The cmdlets in the following table create and manage Automation certificates wit |[Remove-AzAutomationCertificate](/powershell/module/Az.Automation/Remove-AzAutomationCertificate)|Removes a certificate from Automation.| |[Set-AzAutomationCertificate](/powershell/module/Az.Automation/Set-AzAutomationCertificate)|Sets the properties for an existing certificate, including uploading the certificate file and setting the password for a **.pfx** file.| -The [Add-AzureCertificate](/powershell/module/servicemanagement/azure.service/add-azurecertificate) cmdlet can also be used to upload a service certificate for the specified cloud service. +The [Add-AzureCertificate](/powershell/module/servicemanagement/azure/add-azureaccount) cmdlet can also be used to upload a service certificate for the specified cloud service. + ## Internal cmdlets to access certificates |
automation | Credentials | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/shared-resources/credentials.md | Title: Manage credentials in Azure Automation description: This article tells how to create credential assets and use them in a runbook or DSC configuration. Previously updated : 09/22/2021 Last updated : 05/26/2023 The cmdlets in the following table are used to access credentials in your runboo |: |: | | `Get-AutomationPSCredential` |Gets a `PSCredential` object to use in a runbook or DSC configuration. Most often, you should use this [internal cmdlet](modules.md#internal-cmdlets) instead of the `Get-AzAutomationCredential` cmdlet, as the latter only retrieves credential information. This information isn't normally helpful to pass to another cmdlet. | | [Get-Credential](/powershell/module/microsoft.powershell.security/get-credential) |Gets a credential with a prompt for user name and password. This cmdlet is part of the default Microsoft.PowerShell.Security module. See [Default modules](modules.md#default-modules).|-| [New-AzureAutomationCredential](/powershell/module/servicemanagement/azure.service/new-azureautomationcredential) | Creates a credential asset. This cmdlet is part of the default Azure module. See [Default modules](modules.md#default-modules).| +| [New-AzureAutomationCredential](/powershell/module/servicemanagement/azure/new-azureautomationcredential) | Creates a credential asset. This cmdlet is part of the default Azure module. See [Default modules](modules.md#default-modules).| To retrieve `PSCredential` objects in your code, you must import the `Orchestrator.AssetManagement.Cmdlets` module. For more information, see [Manage modules in Azure Automation](modules.md). |
automation | Update Management | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/troubleshoot/update-management.md | Title: Troubleshoot Azure Automation Update Management issues description: This article tells how to troubleshoot and resolve issues with Azure Automation Update Management. Previously updated : 02/23/2023 Last updated : 05/26/2023 |
azure-arc | Managed Instance Disaster Recovery | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-arc/data/managed-instance-disaster-recovery.md | The following prerequisites must be met before setting up failover groups betwee - Service tier - Collation - Other instance settings-- The instance at the secondary site requires `--license-type` as `DisasterRecovery`+- The instance at the secondary site requires `--license-type` as `DisasterRecovery`. This instance needs to be new, without any user objects. > [!NOTE] > - It is important to specify the `--license-type` **during** the Azure Arc-enabled SQL MI creation. This will allow the DR instance to be seeded from the primary instance in the primary data center. Updating this property post deployment will not have the same effect. |
azure-arc | Release Notes | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-arc/kubernetes/release-notes.md | + + Title: "What's new with Azure Arc-enabled Kubernetes" Last updated : 05/23/2023++description: "Learn about the latest releases of Arc-enabled Kubernetes." +++# What's new with Azure Arc-enabled Kubernetes ++Azure Arc-enabled Kubernetes is updated on an ongoing basis. To stay up to date with the most recent developments, this article provides you with information about the latest releases of the Azure CLI `connectedk8s` extension, the [Azure Arc-enabled Kubernetes agents](conceptual-agent-overview.md), and other changes. ++> [!NOTE] +> When any of the Arc-enabled Kubernetes agents are updated, all of the agents in the `azure-arc` namespace are incremented with a new version number, so that the version numbers are consistent across agents. If you have enabled automatic updates, all of the agents will be upgraded together to the newest version (whether or not there are functionality changes in a given agent). +> +> We generally recommend using the most recent versions of the agents. The [version support policy](agent-upgrade.md#version-support-policy) covers the most recent version and the two previous versions (N-2). ++## May 2023 ++### Arc agents - Version 1.11.7 ++- Updates to enable users that belong to more than 200 groups in cluster connect scenarios ++### Azure CLI `connectedk8s` extension - Version 1.3.17 ++- Onboarding enhancements to track ARM resource provisioning +- Enhancements for better troubleshooting and logging to improve onboarding experience ++## April 2023 ++### Arc agents - Version 1.11.3 ++- Updates to base image of Arc-enabled Kubernetes agents to address security CVE ++### Azure CLI `connectedk8s` extension - Version 1.3.16 ++- Force delete added to connect command to clear stale resources, if any, during onboarding +- Diagnoser enhancements to capture and store agent metadata +- Heuristics detection in connect command + |
azure-cache-for-redis | Cache Azure Active Directory For Authentication | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/cache-azure-active-directory-for-authentication.md | Because most Azure Cache for Redis clients assume that a password/access key is ### Azure AD Client Workflow -1. Configure your client application to acquire an Azure AD token for your application using the [Microsoft Authentication Library (MSAL)](/azure/active-directory/develop/msal-overview). +1. Configure your client application to acquire an Azure AD token for scope `acca5fbb-b7e4-4009-81f1-37e38fd66d78/.default` using the [Microsoft Authentication Library (MSAL)](/azure/active-directory/develop/msal-overview). <!-- (ADD code snippet) --> |
azure-cache-for-redis | Cache How To Premium Persistence | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/cache-how-to-premium-persistence.md | On the **Enterprise** and **Enterprise Flash** tiers, data is persisted to a man The first backup starts once the backup frequency interval elapses. > [!NOTE]- > When RDB files are backed up to storage, they are stored in the form of page blobs. + > When RDB files are backed up to storage, they are stored in the form of page blobs. If you're using a storage account with HNS enabled, persistence will tend to fail because page blobs aren't supported in storage accounts with HNS enabled (ADLS Gen2). 9. To enable AOF persistence, select **AOF** and configure the settings. |
azure-functions | Functions Dotnet Dependency Injection | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-dotnet-dependency-injection.md | namespace MyNamespace .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{context.EnvironmentName}.json"), optional: true, reloadOnChange: false) .AddEnvironmentVariables(); }+ + public override void Configure(IFunctionsHostBuilder builder) + { + } } } ``` |
azure-maps | Power Bi Visual Add Heat Map Layer | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/power-bi-visual-add-heat-map-layer.md | Title: Add a heat map layer to an Azure Maps Power BI visual description: In this article, you will learn how to use the heat map layer in an Azure Maps Power BI visual. - Previously updated : 11/29/2021+ Last updated : 05/23/2023 The **Heat map** section of the **Format** pane provides flexibility to customiz - Specify if the value in size field should be used as the weight of each data point. - Pick different colors from color pickers. - Set the minimum and maximum zoom level for heat map layer to be visible.-- Decide the heat map layer position amongst different layers, e.g., 3D bar chart layer and bubble layer.+- Decide the heat map layer position amongst different layers, e.g., 3D column layer and bubble layer. The following table shows the primary settings that are available in the **Heat map** section of the **Format** pane: +| Setting | Description | +|-|| +| Size | The radius of each data point in the heat map.<br /><br />Valid values when Unit = ΓÇÿpixelsΓÇÖ: 1 - 200. Default: **20**<br />Valid values when Unit = ΓÇÿmetersΓÇÖ: 1 - 4,000,000| ++ | Setting | Description | |-|| | Radius | The radius of each data point in the heat map.<br /><br />Valid values when Unit = ΓÇÿpixelsΓÇÖ: 1 - 200. Default: **20**<br />Valid values when Unit = ΓÇÿmetersΓÇÖ: 1 - 4,000,000| The following table shows the primary settings that are available in the **Heat Change how your data is displayed on the map: > [!div class="nextstepaction"]-> [Add a bar chart layer](power-bi-visual-add-3d-column-layer.md) +> [Add a 3D column layer](power-bi-visual-add-3d-column-layer.md) Add more context to the map: |
azure-maps | Power Bi Visual Add Pie Chart Layer | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/power-bi-visual-add-pie-chart-layer.md | Title: Add a pie chart layer to an Azure Maps Power BI visual description: In this article, you will learn how to use the pie chart layer in an Azure Maps Power BI visual. -+ Last updated 03/15/2022 Pie Chart layer is an extension of the bubbles layer, so all settings are made i Change how your data is displayed on the map: > [!div class="nextstepaction"]-> [Add a bar chart layer](power-bi-visual-add-3d-column-layer.md) +> [Add a 3D column layer](power-bi-visual-add-3d-column-layer.md) > [!div class="nextstepaction"] > [Add a heat map layer](power-bi-visual-add-heat-map-layer.md) |
azure-maps | Power Bi Visual Add Reference Layer | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/power-bi-visual-add-reference-layer.md | Title: Add a reference layer to Azure Maps Power BI visual description: In this article, you will learn how to use the reference layer in Azure Maps Power BI visual. -+ Last updated 11/29/2021 |
azure-maps | Power Bi Visual Add Tile Layer | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/power-bi-visual-add-tile-layer.md | Title: Add a tile layer to an Azure Maps Power BI visual description: In this article, you will learn how to use the tile layer in Azure Maps Power BI visual. -+ Last updated 11/29/2021 The bounding box and zoom range of where a tile service is available can be pass | Tile size | An integer value that specifies both the width and height dimensions of the tiles. | | North bound | Northern latitude of the bounding box where tiles are available. | | South bound | Southern latitude of the bounding box where tiles are available. |-| East bound | Eastern longitude of the bounding box where tiles are available. | -| West bound | Western longitude of the bounding box where tiles are available. | +| East bound | Eastern longitude of the bounding box where tiles are available. | +| West bound | Western longitude of the bounding box where tiles are available. | | Transparency | Transparency of the tile layer. | | Is TMS | Tile Map Services, a specification that reverses the Y coordinate axis of the tile layer. | | Min zoom | Minimum zoom level tiles are available. |-| Max zoom | Maximum zoom level tiles are available. | +| Max zoom | Maximum zoom level tiles are available. | | Layer position | Specifies the position of the layer relative to other map layers. | ## Tile URL formatting |
azure-maps | Power Bi Visual Conversion | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/power-bi-visual-conversion.md | Title: Convert Map and Filled map visuals to an Azure Maps Visual + Title: Convert Map and Filled map visuals to an Azure Maps visual -description: This article covers how to convert Map and Filled map visuals to an Azure Maps Visual. +description: This article covers how to convert Map and Filled map visuals to an Azure Maps visual. Last updated 05/23/2023-# Convert Map and Filled map visuals to an Azure Maps Visual +# Convert Map and Filled map visuals to an Azure Maps visual -The Azure Maps Visual is now Generally Available, providing a streamlined and intuitive experience for working with your data. +The Azure Maps visual is now Generally Available, providing a streamlined and intuitive experience for working with your data. ## How to convert your existing Map and Filled map visuals -A conversion function is available in Power BI desktop to convert any existing Map and Filled map visuals to the new Azure Maps Visual. +A conversion function is available in Power BI desktop to convert any existing Map and Filled map visuals to the new Azure Maps visual. -When opening a report with Map and Filled map visuals, you will see the following dialog giving you the option to upgrade to the new Azure Maps Visual: +When opening a report with Map and Filled map visuals, you will see the following dialog giving you the option to upgrade to the new Azure Maps visual: -When selecting the **Upgrade maps** button, all Map and Filled map visuals in the current report are converted. You can also convert a specific Map or Filled Map Visual to an Azure Maps Visual in the Visual gallery. +When selecting the **Upgrade maps** button, all Map and Filled map visuals in the current report are converted. You can also convert a specific Map or Filled Map Visual to an Azure Maps visual in the Visual gallery. -All settings associated with the original visuals are carried over to the new Azure Maps Visual, ensuring consistency in the migrated report. +All settings associated with the original visuals are carried over to the new Azure Maps visual, ensuring consistency in the migrated report. > [!NOTE] > Due to differences in supported bubble size ranges between the two platforms, you may notice that some bubbles appear smaller on the converted Azure Maps visual compared to their original size in the Maps visual. This is because the maximum bubble size in Azure Maps is smaller than the maximum bubble size in Bing Maps. Bubble size differences can vary based on the visual dimension and the report's zoom level. -The migration function streamlines the process of converting Map and Filled map visuals to Azure Maps Visuals, providing users with an efficient and easy-to-use solution. +The migration function streamlines the process of converting Map and Filled map visuals to Azure Maps visuals, providing users with an efficient and easy-to-use solution. ## Next steps |
azure-maps | Power Bi Visual Filled Map | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/power-bi-visual-filled-map.md | Title: Filled map in Azure Maps Power BI Visual description: In this article, you'll learn about the Filled map feature in Azure Maps Power BI Visual. -+ Last updated 04/11/2022 -# Filled map in Azure Maps Power BI Visual (Preview) +# Filled map in Azure Maps Power BI visual Filled maps use varying degrees of shading, tinting or different patterns to provide a visual display that quickly shows differences in values across a geography or region. Showing these relative differences with shading that ranges from light (less-frequent/lower) to dark (more-frequent/more) is a useful way to quickly convey pertinent information to viewers. There are two places where you can adjust filled maps settings: Build and format Change how your data is displayed on the map: > [!div class="nextstepaction"]-> [Add a bar chart layer](power-bi-visual-add-3d-column-layer.md) +> [Add a 3D column layer](power-bi-visual-add-3d-column-layer.md) > [!div class="nextstepaction"] > [Add a heat map layer](power-bi-visual-add-heat-map-layer.md) |
azure-maps | Power Bi Visual Geocode | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/power-bi-visual-geocode.md | Title: Geocoding in Azure Maps Power BI visual description: In this article, you'll learn about geocoding in Azure Maps Power BI visual. -+ Last updated 03/16/2022 To ensure fields are correctly geocoded, you can set the Data Category on the da Learn more about the Azure Maps Power BI visual: > [!div class="nextstepaction"]-> [Get started with Azure Maps Power BI visual (Preview)](power-bi-visual-get-started.md) +> [Get started with Azure Maps Power BI visual](power-bi-visual-get-started.md) > [!div class="nextstepaction"] > [Understanding layers in the Azure Maps Power BI visual](power-bi-visual-understanding-layers.md) |
azure-maps | Power Bi Visual On Object Interaction | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/power-bi-visual-on-object-interaction.md | Title: Contextual on-object interaction with Azure Maps Power BI visuals (preview) + Title: Contextual on-object interaction with Azure Maps Power BI visuals description: How to format elements by selecting the element directly on the map to bring up the available formatting options. -+ Last updated 03/13/2023 -# Contextual on-object interaction with Azure Maps Power BI Visual (preview) +# Contextual on-object interaction with Azure Maps Power BI visual (preview) The Azure Maps Power BI Visual now features on-object interaction, an intuitive and efficient way to update the formatting of any element on the map. With on-object interaction, you can interact with the Azure Maps Power BI Visual like you interact with other Microsoft products or web applications. -## Setting the Preview features option +## Use on-object interaction in your Power BI Visual -To use on-object interaction in your Power BI Visual, you must first select the **on-object interaction** setting in Power BI options, as shown in the following screenshot. --## using on-object interaction in your Power BI Visual --on-object interaction can be used to edit chart titles, legends, bubble +On-object interaction can be used to edit chart titles, legends, bubble layers, Map style and Map controls. ### Formatting objects on the map |
azure-maps | Power Bi Visual Show Real Time Traffic | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/power-bi-visual-show-real-time-traffic.md | Title: Show real-time traffic on an Azure Maps Power BI visual description: In this article, you will learn how to show real-time traffic on an Azure Maps Power BI visual. -+ Last updated 11/29/2021 |
azure-maps | Power Bi Visual Understanding Layers | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/power-bi-visual-understanding-layers.md | Title: Layers in an Azure Maps Power BI visual description: In this article, you will learn about the different layers available in an Azure Maps Power BI visual. -+ Last updated 11/29/2021 There are two types of layers available in an Azure Maps Power BI visual. The fi  :::column-end::: :::column span="":::- **Bar chart layer** + **3D column layer** - Renders points as 3D bars on the map. + Renders points as 3D columns on the map. +  + :::column-end::: ++ :::column span=""::: + **Filled map layer** ++ Provides a visual display to shows differences in values across a geography or region. ++  + :::column-end::: + :::column span=""::: + **Heat map layer** ++ Shows data "hot spots" on a map. -  +  :::column-end::: :::row-end::: These layers also have an option to be positioned relative to other layers in th ## General layer settings -The general layer section of the **Format** pane are common settings that apply to the layers that are connected to the Power BI dataset in the **Fields** pane (Bubble layer, Bar chart). +The general layer section of the **Format** pane are common settings that apply to the layers that are connected to the Power BI dataset in the **Fields** pane (Bubble layer, 3D column layer). | Setting | Description | |-|| Change how your data is displayed on the map: > [Add a bubble layer](power-bi-visual-add-bubble-layer.md) > [!div class="nextstepaction"]-> [Add a bar chart layer](power-bi-visual-add-3d-column-layer.md) +> [Add a 3D column layer](power-bi-visual-add-3d-column-layer.md) Add more context to the map: |
azure-monitor | Api Custom Events Metrics | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/api-custom-events-metrics.md | The SDKs catch many exceptions automatically, so you don't always have to call ` * **ASP.NET**: [Write code to catch exceptions](./asp-net-exceptions.md). * **Java EE**: [Exceptions are caught automatically](./opentelemetry-enable.md?tabs=java).-* **JavaScript**: Exceptions are caught automatically. If you want to disable automatic collection, add a line to the code snippet that you insert in your webpages: +* **JavaScript**: Exceptions are caught automatically. If you want to disable automatic collection, add a line to the SDK Loader Script that you insert in your webpages: ```javascript ({ |
azure-monitor | Api Filtering Sampling | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/api-filtering-sampling.md | For apps written using [ASP.NET Core](asp-net-core.md#add-telemetryinitializers) ### JavaScript telemetry initializers *JavaScript* -Insert a telemetry initializer using the snippet onInit callback: +Insert a telemetry initializer by adding the onInit callback function in the [SDK Loader Script configuration](./javascript-sdk.md?tabs=sdkloaderscript#sdk-loader-script-configuration): ```html <script type="text/javascript">-!function(T,l,y){<!-- Removed the Snippet code for brevity -->}(window,document,{ +!function(v,y,T){<!-- Removed the SDK Loader Script code for brevity -->}(window,document,{ src: "https://js.monitor.azure.com/scripts/b/ai.2.min.js", crossOrigin: "anonymous", onInit: function (sdk) { sdk.addTelemetryInitializer(function (envelope) {+ envelope.data = envelope.data || {}; envelope.data.someField = 'This item passed through my telemetry initializer'; }); }, // Once the application insights instance has loaded and initialized this method will be called cfg: { // Application Insights Configuration- instrumentationKey: "YOUR_INSTRUMENTATION_KEY" + connectionString: "YOUR_CONNECTION_STRING" }}); </script> ``` |
azure-monitor | Asp Net Core | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/asp-net-core.md | HttpContext.Features.Get<RequestTelemetry>().Properties["myProp"] = someData ## Enable client-side telemetry for web applications -The preceding steps are enough to help you start collecting server-side telemetry. If your application has client-side components, follow the next steps to start collecting [usage telemetry](./usage-overview.md). +The preceding steps are enough to help you start collecting server-side telemetry. If your application has client-side components, follow the next steps to start collecting [usage telemetry](./usage-overview.md) SDK Loader Script injection by configuration. 1. In `_ViewImports.cshtml`, add injection: As an alternative to using `FullScript`, `ScriptBody` is available starting in A </script> ``` -The `.cshtml` file names referenced earlier are from a default MVC application template. Ultimately, if you want to properly enable client-side monitoring for your application, the JavaScript snippet must appear in the `<head>` section of each page of your application that you want to monitor. Add the JavaScript snippet to `_Layout.cshtml` in an application template to enable client-side monitoring. +The `.cshtml` file names referenced earlier are from a default MVC application template. Ultimately, if you want to properly enable client-side monitoring for your application, the JavaScript SDK Loader Script must appear in the `<head>` section of each page of your application that you want to monitor. Add the JavaScript SDK Loader Script to `_Layout.cshtml` in an application template to enable client-side monitoring. -If your project doesn't include `_Layout.cshtml`, you can still add [client-side monitoring](./website-monitoring.md) by adding the JavaScript snippet to an equivalent file that controls the `<head>` of all pages within your app. Alternatively, you can add the snippet to multiple pages, but we don't recommend it. +If your project doesn't include `_Layout.cshtml`, you can still add [client-side monitoring](./website-monitoring.md) by adding the JavaScript SDK Loader Script to an equivalent file that controls the `<head>` of all pages within your app. Alternatively, you can add the SDK Loader Script to multiple pages, but we don't recommend it. > [!NOTE] > JavaScript injection provides a default configuration experience. If you require [configuration](./javascript.md#configuration) beyond setting the connection string, you're required to remove auto-injection as described and manually add the [JavaScript SDK](./javascript.md#add-the-javascript-sdk). |
azure-monitor | Asp Net | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/asp-net.md | You have now successfully configured server-side application monitoring. If you ## Add client-side monitoring -The previous sections provided guidance on methods to automatically and manually configure server-side monitoring. To add client-side monitoring, use the [client-side JavaScript SDK](javascript.md). You can monitor any web page's client-side transactions by adding a [JavaScript snippet](javascript.md#snippet-based-setup) before the closing `</head>` tag of the page's HTML. +The previous sections provided guidance on methods to automatically and manually configure server-side monitoring. To add client-side monitoring, use the [client-side JavaScript SDK](javascript.md). You can monitor any web page's client-side transactions by adding a [JavaScript SDK Loader Script](./javascript-sdk.md?tabs=sdkloaderscript#enable-application-insights) before the closing `</head>` tag of the page's HTML. -Although it's possible to manually add the snippet to the header of each HTML page, we recommend that you instead add the snippet to a primary page. That action injects the snippet into all pages of a site. +Although it's possible to manually add the SDK Loader Script to the header of each HTML page, we recommend that you instead add the SDK Loader Script to a primary page. That action injects the SDK Loader Script into all pages of a site. -For the template-based ASP.NET MVC app from this article, the file that you need to edit is *_Layout.cshtml*. You can find it under **Views** > **Shared**. To add client-side monitoring, open *_Layout.cshtml* and follow the [snippet-based setup instructions](javascript.md#snippet-based-setup) from the article about client-side JavaScript SDK configuration. +For the template-based ASP.NET MVC app from this article, the file that you need to edit is *_Layout.cshtml*. You can find it under **Views** > **Shared**. To add client-side monitoring, open *_Layout.cshtml* and follow the [SDK Loader Script-based setup instructions](./javascript-sdk.md?tabs=sdkloaderscript#enable-application-insights) from the article about client-side JavaScript SDK configuration. ## Troubleshooting |
azure-monitor | Codeless Overview | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/codeless-overview.md | Links are provided to more information for each supported scenario. > [!NOTE] > Auto-instrumentation was known as "codeless attach" before October 2021. +## SDK Loader Script injection by configuration ++If youΓÇÖre using the following supported SDKs, you can configure the SDK Loader Script to inject from the server-side SDK onto each page. ++> [!NOTE] +> See the linked article for instructions on how to install the server-side SDK. ++ | SDK | More information + | : | : | + | ASP.NET Core | [Enable client-side telemetry for web applications](./asp-net-core.md?tabs=netcorenew%2Cnetcore6#enable-client-side-telemetry-for-web-applications) | + | Node.js | [Automatic web Instrumentation[Preview]](./nodejs.md#automatic-web-instrumentationpreview) | + ## Next steps * [Application Insights overview](app-insights-overview.md) |
azure-monitor | Data Model Complete | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/data-model-complete.md | Response code `404` might indicate "no records," which can be part of regular fl Partially accepted content `206` might indicate a failure of an overall request. For instance, an Application Insights endpoint might receive a batch of telemetry items as a single request. It returns `206` when some items in the batch weren't processed successfully. An increasing rate of `206` indicates a problem that needs to be investigated. Similar logic applies to `207` Multi-Status, where the success might be the worst of separate response codes. -You can read more about the request result code and status code in the [blog post](https://apmtips.com/posts/2016-12-03-request-success-and-response-code/). - ### Custom properties [!INCLUDE [application-insights-data-model-properties](../../../includes/application-insights-data-model-properties.md)] |
azure-monitor | Distributed Tracing Telemetry Correlation | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/distributed-tracing-telemetry-correlation.md | It's important to make sure the incoming and outgoing configurations are exactly This feature is in `Microsoft.ApplicationInsights.JavaScript`. It's disabled by default. To enable it, use `distributedTracingMode` config. AI_AND_W3C is provided for backward compatibility with any legacy services instrumented by Application Insights. -- **[npm-based setup](./javascript.md#npm-based-setup)**+- **[npm-based setup](./javascript-sdk.md?tabs=npmpackage#enable-application-insights)** Add the following configuration: ```JavaScript distributedTracingMode: DistributedTracingModes.W3C ``` -- **[Snippet-based setup](./javascript.md#snippet-based-setup)**+- **[SDK Loader Script-based setup](./javascript-sdk.md?tabs=sdkloaderscript#enable-application-insights)** Add the following configuration: ``` |
azure-monitor | Javascript Feature Extensions | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/javascript-feature-extensions.md | In this article, we cover the Click Analytics plug-in, which automatically track ## Get started -Users can set up the Click Analytics Auto-Collection plug-in via snippet or NPM. +Users can set up the Click Analytics Auto-Collection plug-in via SDK Loader Script or NPM. [!INCLUDE [azure-monitor-log-analytics-rebrand](../../../includes/azure-monitor-instrumentation-key-deprecation.md)] -### Snippet setup +### SDK Loader Script setup Ignore this setup if you use the npm setup. Ignore this setup if you use the npm setup. [clickPluginInstance.identifier] : clickPluginConfig }, };- // Application Insights Snippet code - !function(T,l,y){<!-- Removed the Snippet code for brevity -->}(window,document,{ + // Application Insights SDK Loader Script code + !function(v,y,T){<!-- Removed the SDK Loader Script code for brevity -->}(window,document,{ src: "https://js.monitor.azure.com/scripts/b/ai.2.min.js", crossOrigin: "anonymous",- cfg: configObj + cfg: configObj // configObj is defined above. }); </script> ``` +> [!NOTE] +> To add or update SDK Loader Script configuration, see [SDK Loader Script configuration](./javascript-sdk.md?tabs=sdkloaderscript#sdk-loader-script-configuration). + ### npm setup Install the npm package: If you declare `parentDataTag` and define the `data-parentid` or `data-*-parenti > For examples showing which value is fetched as the `parentId` for different configurations, see [Examples of `parentid` key](#examples-of-parentid-key). > [!CAUTION]-> After `parentDataTag` is used, the SDK begins looking for parent tags across your entire application and not just the HTML element where you used it. +> Once `parentDataTag` is included in *any* HTML element across your application *the SDK begins looking for parents tags across your entire application* and not just the HTML element where you used it. ++> [!CAUTION] +> If you're using the HEART workbook with the Click Analytics plugin, for HEART events to be logged or detected, the tag `parentDataTag` must be declared in all other parts of an end user's application. ### `customDataPrefix` |
azure-monitor | Javascript Sdk Advanced | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/javascript-sdk-advanced.md | -> - [npm setup](#npm-setup) +> - [SDK configuration](#sdk-configuration) > - [Cookie configuration and management](#cookies) > - [Source map un-minify support](#source-map) > - [Tree shaking optimized code](#tree-shaking) -## npm setup +## SDK configuration -The npm setup installs the JavaScript SDK as a dependency to your project and enables IntelliSense. +These configuration fields are optional and default to false unless otherwise stated. Depending on how you're enabling Application Insights, add these configuration fields as follows: -This option is only needed for developers who require more custom events and configuration. --### Getting started with npm --Install via npm. --```sh -npm i --save @microsoft/applicationinsights-web -``` --> [!Note] -> *Typings are included with this package*, so you do *not* need to install a separate typings package. - -```js -import { ApplicationInsights } from '@microsoft/applicationinsights-web' --const appInsights = new ApplicationInsights({ config: { - connectionString: 'YOUR_CONNECTION_STRING_GOES_HERE' - /* ...Other Configuration Options... */ -} }); -appInsights.loadAppInsights(); -appInsights.trackPageView(); -``` -Replace the placeholder 'YOUR_CONNECTION_STRING_GOES_HERE' with your actual connection string found in the Azure portal. --1. Navigate to the **Overview** pane of your Application Insights resource. -1. Locate the **Connection String**. -1. Select the button to copy the connection string to the clipboard. ---### Configuration --These configuration fields are optional and default to false unless otherwise stated. +- If you're using the SDK Loader Script to enable Application Insights, add these configuration fields within the `cfg` object. +- If you're using the npm package to enable Application Insights, add these configuration fields within the `config` object. | Name | Type | Default | Description | ||||-| |
azure-monitor | Javascript Sdk Upgrade | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/javascript-sdk-upgrade.md | Upgrading to the new version of the Application Insights JavaScript SDK can prov If you're using the current application insights PRODUCTION SDK (1.0.20) and want to see if the new SDK works in runtime, update the URL depending on your current SDK loading scenario. -- Download via CDN scenario: Update the code snippet that you currently use to point to the following URL:+- Download via CDN scenario: Update the SDK Loader Script that you currently use to point to the following URL: ``` "https://js.monitor.azure.com/scripts/b/ai.2.min.js" ``` |
azure-monitor | Javascript Sdk | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/javascript-sdk.md | -## Get started +## Enable Application Insights -The Application Insights JavaScript SDK is implemented with a runtime snippet for out-of-the-box web analytics. -The JavaScript snippet can be added to your webpages manually or via the automatic snippet injection. +Two methods are available to manually enable Application Insights via the Application Insights JavaScript SDK. -### Enable Application Insights SDK for JavaScript automatically +> [!TIP] +> Good news! We're making it even easier to enable JavaScript. Check out where [SDK Loader Script injection by configuration is available](./codeless-overview.md#sdk-loader-script-injection-by-configuration)! -The automatic Snippet injection feature available in the Application Insights .NET core SDK and the Application Insights Node.js SDK (preview) -allows you to automatically inject the Application Insights JavaScript SDK into every webpage of your web application. -For more information, see [Application Insights .NET core SDK Snippet Injection](./asp-net-core.md?tabs=netcorenew%2Cnetcore6#enable-client-side-telemetry-for-web-applications) -and [Application Insights Node.js SDK Snippet Injection (preview)](./nodejs.md#automatic-web-instrumentationpreview). -However, if you want more control over which pages to add the Application Insights JavaScript SDK -or if you're using a programming language other than .NET and Node.js, please follow the manual configuration steps below. +### [SDK Loader Script](#tab/sdkloaderscript) -### Enable Application Insights SDK for JavaScript manually +Use this method if you want to: -Only two steps are required to enable the Application Insights SDK for JavaScript. +- Load the SDK from the CDN instead of including the Application Insights code with your application code. +- Have control over which pages you add the Application Insights JavaScript SDK to. -#### Add the code snippet +To use this method, you must manually paste the SDK Loader Script at the top of each applicable page. -Directly instrument your webpages with Application Insights by pasting this snippet at the top of each your pages. Preferably, it should be the first script in your <head> section so that it can monitor any potential issues with all of your dependencies. +Use the following steps to enable Application Insights: -```html -<script type="text/javascript"> -!function(T,l,y){var S=T.location,k="script",D="instrumentationKey",C="ingestionendpoint",I="disableExceptionTracking",E="ai.device.",b="toLowerCase",w="crossOrigin",N="POST",e="appInsightsSDK",t=y.name||"appInsights";(y.name||T[e])&&(T[e]=t);var n=T[t]||function(d){var g=!1,f=!1,m={initialize:!0,queue:[],sv:"5",version:2,config:d};function v(e,t){var n={},a="Browser";return n[E+"id"]=a[b](),n[E+"type"]=a,n["ai.operation.name"]=S&&S.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(m.sv||m.version),{time:function(){var e=new Date;function t(e){var t=""+e;return 1===t.length&&(t="0"+t),t}return e.getUTCFullYear()+"-"+t(1+e.getUTCMonth())+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+"."+((e.getUTCMilliseconds()/1e3).toFixed(3)+"").slice(2,5)+"Z"}(),iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}}}}var h=d.url||y.src;if(h){function a(e){var t,n,a,i,r,o,s,c,u,p,l;g=!0,m.queue=[],f||(f=!0,t=h,s=function(){var e={},t=d.connectionString;if(t)for(var n=t.split(";"),a=0;a<n.length;a++){var i=n[a].split("=");2===i.length&&(e[i[0][b]()]=i[1])}if(!e[C]){var r=e.endpointsuffix,o=r?e.location:null;e[C]="https://"+(o?o+".":"")+"dc."+(r||"services.visualstudio.com")}return e}(),c=s[D]||d[D]||"",u=s[C],p=u?u+"/v2/track":d.endpointUrl,(l=[]).push((n="SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)",a=t,i=p,(o=(r=v(c,"Exception")).data).baseType="ExceptionData",o.baseData.exceptions=[{typeName:"SDKLoadFailed",message:n.replace(/\./g,"-"),hasFullStack:!1,stack:n+"\nSnippet failed to load ["+a+"] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: "+(S&&S.pathname||"_unknown_")+"\nEndpoint: "+i,parsedStack:[]}],r)),l.push(function(e,t,n,a){var i=v(c,"Message"),r=i.data;r.baseType="MessageData";var o=r.baseData;return o.message='AI (Internal): 99 message:"'+("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) ("+n+")").replace(/\"/g,"")+'"',o.properties={endpoint:a},i}(0,0,t,p)),function(e,t){if(JSON){var n=T.fetch;if(n&&!y.useXhr)n(t,{method:N,body:JSON.stringify(e),mode:"cors"});else if(XMLHttpRequest){var a=new XMLHttpRequest;a.open(N,t),a.setRequestHeader("Content-type","application/json"),a.send(JSON.stringify(e))}}}(l,p))}function i(e,t){f||setTimeout(function(){!t&&m.core||a()},500)}var e=function(){var n=l.createElement(k);n.src=h;var e=y[w];return!e&&""!==e||"undefined"==n[w]||(n[w]=e),n.onload=i,n.onerror=a,n.onreadystatechange=function(e,t){"loaded"!==n.readyState&&"complete"!==n.readyState||i(0,t)},n}();y.ld<0?l.getElementsByTagName("head")[0].appendChild(e):setTimeout(function(){l.getElementsByTagName(k)[0].parentNode.appendChild(e)},y.ld||0)}try{m.cookie=l.cookie}catch(p){}function t(e){for(;e.length;)!function(t){m[t]=function(){var e=arguments;g||m.queue.push(function(){m[t].apply(m,e)})}}(e.pop())}var n="track",r="TrackPage",o="TrackEvent";t([n+"Event",n+"PageView",n+"Exception",n+"Trace",n+"DependencyData",n+"Metric",n+"PageViewPerformance","start"+r,"stop"+r,"start"+o,"stop"+o,"addTelemetryInitializer","setAuthenticatedUserContext","clearAuthenticatedUserContext","flush"]),m.SeverityLevel={Verbose:0,Information:1,Warning:2,Error:3,Critical:4};var s=(d.extensionConfig||{}).ApplicationInsightsAnalytics||{};if(!0!==d[I]&&!0!==s[I]){var c="onerror";t(["_"+c]);var u=T[c];T[c]=function(e,t,n,a,i){var r=u&&u(e,t,n,a,i);return!0!==r&&m["_"+c]({message:e,url:t,lineNumber:n,columnNumber:a,error:i}),r},d.autoExceptionInstrumented=!0}return m}(y.cfg);function a(){y.onInit&&y.onInit(n)}(T[t]=n).queue&&0===n.queue.length?(n.queue.push(a),n.trackPageView({})):a()}(window,document,{ -src: "https://js.monitor.azure.com/scripts/b/ai.2.min.js", // The SDK URL Source -// name: "appInsights", // Global SDK Instance name defaults to "appInsights" when not supplied -// ld: 0, // Defines the load delay (in ms) before attempting to load the sdk. -1 = block page load and add to head. (default) = 0ms load after timeout, -// useXhr: 1, // Use XHR instead of fetch to report failures (if available), -crossOrigin: "anonymous", // When supplied this will add the provided value as the cross origin attribute on the script tag -// onInit: null, // Once the application insights instance has loaded and initialized this callback function will be called with 1 argument -- the sdk instance (DO NOT ADD anything to the sdk.queue -- As they won't get called) -cfg: { // Application Insights Configuration - connectionString: "CONNECTION_STRING" -}}); -</script> -``` +1. Paste the SDK Loader Script at the top of each page for which you want to enable Application Insights. -#### Define the connection string + > [!NOTE] + > Preferably, you should add it as the first script in your <head> section so that it can monitor any potential issues with all of your dependencies. -An Application Insights [connection string](sdk-connection-string.md) contains information to connect to the Azure cloud and associate telemetry data with a specific Application Insights resource. The connection string includes the Instrumentation Key (a unique identifier), the endpoint suffix (to specify the Azure cloud), and optional explicit endpoints for individual services. The connection string isn't considered a security token or key. + ```html + <script type="text/javascript"> + !function(v,y,T){var S=v.location,k="script",D="instrumentationKey",C="ingestionendpoint",I="disableExceptionTracking",E="ai.device.",b="toLowerCase",w=(D[b](),"crossOrigin"),N="POST",e="appInsightsSDK",t=T.name||"appInsights",n=((T.name||v[e])&&(v[e]=t),v[t]||function(l){var u=!1,d=!1,g={initialize:!0,queue:[],sv:"6",version:2,config:l};function m(e,t){var n={},a="Browser";return n[E+"id"]=a[b](),n[E+"type"]=a,n["ai.operation.name"]=S&&S.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(g.sv||g.version),{time:(a=new Date).getUTCFullYear()+"-"+i(1+a.getUTCMonth())+"-"+i(a.getUTCDate())+"T"+i(a.getUTCHours())+":"+i(a.getUTCMinutes())+":"+i(a.getUTCSeconds())+"."+(a.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z",iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}}};function i(e){e=""+e;return 1===e.length?"0"+e:e}}var e,n,f=l.url||T.src;function a(e){var t,n,a,i,o,s,r,c,p;u=!0,g.queue=[],d||(d=!0,i=f,r=(c=function(){var e,t={},n=l.connectionString;if(n)for(var a=n.split(";"),i=0;i<a.length;i++){var o=a[i].split("=");2===o.length&&(t[o[0][b]()]=o[1])}return t[C]||(t[C]="https://"+((e=(n=t.endpointsuffix)?t.location:null)?e+".":"")+"dc."+(n||"services.visualstudio.com")),t}()).instrumentationkey||l[D]||"",c=(c=c[C])?c+"/v2/track":l.endpointUrl,(p=[]).push((t="SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)",n=i,o=c,(s=(a=m(r,"Exception")).data).baseType="ExceptionData",s.baseData.exceptions=[{typeName:"SDKLoadFailed",message:t.replace(/\./g,"-"),hasFullStack:!1,stack:t+"\nSnippet failed to load ["+n+"] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: "+(S&&S.pathname||"_unknown_")+"\nEndpoint: "+o,parsedStack:[]}],a)),p.push((s=i,t=c,(o=(n=m(r,"Message")).data).baseType="MessageData",(a=o.baseData).message='AI (Internal): 99 message:"'+("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) ("+s+")").replace(/\"/g,"")+'"',a.properties={endpoint:t},n)),i=p,r=c,JSON&&((o=v.fetch)&&!T.useXhr?o(r,{method:N,body:JSON.stringify(i),mode:"cors"}):XMLHttpRequest&&((s=new XMLHttpRequest).open(N,r),s.setRequestHeader("Content-type","application/json"),s.send(JSON.stringify(i)))))}function i(e,t){d||setTimeout(function(){!t&&g.core||a()},500)}f&&((n=y.createElement(k)).src=f,!(o=T[w])&&""!==o||"undefined"==n[w]||(n[w]=o),n.onload=i,n.onerror=a,n.onreadystatechange=function(e,t){"loaded"!==n.readyState&&"complete"!==n.readyState||i(0,t)},e=n,T.ld<0?y.getElementsByTagName("head")[0].appendChild(e):setTimeout(function(){y.getElementsByTagName(k)[0].parentNode.appendChild(e)},T.ld||0));try{g.cookie=y.cookie}catch(h){}function t(e){for(;e.length;)!function(t){g[t]=function(){var e=arguments;u||g.queue.push(function(){g[t].apply(g,e)})}}(e.pop())}var s,r,o="track",c="TrackPage",p="TrackEvent",o=(t([o+"Event",o+"PageView",o+"Exception",o+"Trace",o+"DependencyData",o+"Metric",o+"PageViewPerformance","start"+c,"stop"+c,"start"+p,"stop"+p,"addTelemetryInitializer","setAuthenticatedUserContext","clearAuthenticatedUserContext","flush"]),g.SeverityLevel={Verbose:0,Information:1,Warning:2,Error:3,Critical:4},(l.extensionConfig||{}).ApplicationInsightsAnalytics||{});return!0!==l[I]&&!0!==o[I]&&(t(["_"+(s="onerror")]),r=v[s],v[s]=function(e,t,n,a,i){var o=r&&r(e,t,n,a,i);return!0!==o&&g["_"+s]({message:e,url:t,lineNumber:n,columnNumber:a,error:i,evt:v.event}),o},l.autoExceptionInstrumented=!0),g}(T.cfg));function a(){T.onInit&&T.onInit(n)}(v[t]=n).queue&&0===n.queue.length?(n.queue.push(a),n.trackPageView({})):a()}(window,document,{ + src: "https://js.monitor.azure.com/scripts/b/ai.2.min.js", + // name: "appInsights", + // ld: 0, + // useXhr: 1, + crossOrigin: "anonymous", + // onInit: null, + cfg: { // Application Insights Configuration + connectionString: "YOUR_CONNECTION_STRING" + }}); + </script> + ``` -In the code snippet, replace the placeholder `"CONNECTION_STRING"` with your actual connection string found in the Azure portal. +1. (Optional) Add or update optional [SDK Loader Script configuration](#sdk-loader-script-configuration), depending on if you need to optimize the loading of your web page or resolve loading errors. -1. Navigate to the **Overview** pane of your Application Insights resource. -1. Locate the **Connection String**. -1. Select the button to copy the connection string to the clipboard. + :::image type="content" source="media/javascript-sdk/sdk-loader-script-configuration.png" alt-text="Screenshot of the SDK Loader Script. The parameters for configuring the SDK Loader Script are highlighted." lightbox="media/javascript-sdk/sdk-loader-script-configuration.png"::: +1. (Optional) Add optional [SDK configuration](#sdk-configuration), which is passed to the Application Insights JavaScript SDK during initialization. -## Snippet configuration + :::image type="content" source="media/javascript-sdk/sdk-loader-script-sdk-configuration.png" alt-text="Screenshot of the SDK Loader Script. The cfg object, which is used to configure the Application Insights JavaScript SDK, is highlighted." lightbox="media/javascript-sdk/sdk-loader-script-sdk-configuration.png"::: -Other snippet configuration is optional. +1. Add your connection string: -| Name | Type | Description -|||- -| src | string **[required]** | The full URL for where to load the SDK from. This value is used for the "src" attribute of a dynamically added <script /> tag. You can use the public CDN location or your own privately hosted one. -| name | string *[optional]* | The global name for the initialized SDK, defaults to appInsights. So ```window.appInsights``` is a reference to the initialized instance. Note: If you assign a name value or if a previous instance has been assigned to the global name appInsightsSDK, the SDK initialization code requires it to be in the global namespace as `window.appInsightsSDK=<name value>` to ensure the correct snippet skeleton, and proxy methods are initialized and updated. -| ld | number in ms *[optional]* | Defines the load delay to wait before attempting to load the SDK. The default value is 0ms. If you use a negative value, the script tag is immediately added to the <head> region of the page and blocks the page load event until the script is loaded or fails. -| useXhr | boolean *[optional]* | This setting is used only for reporting SDK load failures. Reporting first attempts to use fetch() if available and then fallback to XHR, setting this value to true just bypasses the fetch check. Use of this value is only be required if your application is being used in an environment where fetch would fail to send the failure events. -| crossOrigin | string *[optional]* | By including this setting, the script tag added to download the SDK includes the crossOrigin attribute with this string value. When not defined (the default) no crossOrigin attribute is added. Recommended values aren't defined (the default); ""; or "anonymous" (For all valid values see the [cross origin HTML attribute](https://developer.mozilla.org/docs/Web/HTML/Attributes/crossorigin) documentation) -| onInit | function(aiSdk) { ... } *[optional]* | This callback function is called after the main SDK script has been successfully loaded and initialized from the CDN (based on the src value). It's passed a reference to the sdk instance that it's being called for and is also called before the first initial page view. If the SDK has already been loaded and initialized, this callback is still called. NOTE: During the processing of the sdk.queue array, this callback is called. You CANNOT add any more items to the queue because they're ignored and dropped. (Added as part of snippet version 5--the sv:"5" value within the snippet script) -| cfg | object **[required]** | The configuration passed to the Application Insights SDK during initialization. + 1. Navigate to the **Overview** pane of your Application Insights resource. + 1. Locate the **Connection String**. + 1. Select the **Copy to clipboard** icon to copy the connection string to the clipboard. -### Example using the snippet onInit callback + :::image type="content" source="media/migrate-from-instrumentation-keys-to-connection-strings/migrate-from-instrumentation-keys-to-connection-strings.png" alt-text="Screenshot that shows Application Insights overview and connection string." lightbox="media/migrate-from-instrumentation-keys-to-connection-strings/migrate-from-instrumentation-keys-to-connection-strings.png"::: -```html -<script type="text/javascript"> -!function(T,l,y){<!-- Removed the Snippet code for brevity -->}(window,document,{ -src: "https://js.monitor.azure.com/scripts/b/ai.2.min.js", -crossOrigin: "anonymous", -onInit: function (sdk) { - sdk.addTelemetryInitializer(function (envelope) { - envelope.data = envelope.data || {}; - envelope.data.someField = 'This item passed through my telemetry initializer'; - }); -}, // Once the application insights instance has loaded and initialized this method will be called -cfg: { // Application Insights Configuration - connectionString: "YOUR_CONNECTION_STRING" -}}); -</script> -``` + 1. Replace the placeholder `"YOUR_CONNECTION_STRING"` in the SDK Loader Script with your connection string copied to the clipboard. ++ > [!NOTE] + > An Application Insights [connection string](sdk-connection-string.md) contains information to connect to the Azure cloud and associate telemetry data with a specific Application Insights resource. The connection string includes the Instrumentation Key (a unique identifier), the endpoint suffix (to specify the Azure cloud), and optional explicit endpoints for individual services. The connection string isn't considered a security token or key. ++### SDK Loader Script configuration ++ | Name | Type | Required? | Description + |||--| + | src | string | Required | The full URL for where to load the SDK from. This value is used for the "src" attribute of a dynamically added <script /> tag. You can use the public CDN location or your own privately hosted one. + | name | string | Optional | The global name for the initialized SDK. Use this setting if you need to initialize two different SDKs at the same time.<br><br>The default value is appInsights, so ```window.appInsights``` is a reference to the initialized instance.<br><br> Note: If you assign a name value or if a previous instance has been assigned to the global name appInsightsSDK, the SDK initialization code requires it to be in the global namespace as `window.appInsightsSDK=<name value>` to ensure the correct SDK Loader Script skeleton, and proxy methods are initialized and updated. + | ld | number in ms | Optional | Defines the load delay to wait before attempting to load the SDK. Use this setting when the HTML page is failing to load because the SDK Loader Script is loading at the wrong time.<br><br>The default value is 0ms after timeout. If you use a negative value, the script tag is immediately added to the <head> region of the page and blocks the page load event until the script is loaded or fails. + | useXhr | boolean | Optional | This setting is used only for reporting SDK load failures. For example, this setting is useful when the SDK Loader Script is preventing the HTML page from loading, causing fetch() to be unavailable.<br><br>Reporting first attempts to use fetch() if available and then fallback to XHR. Set this setting to `true` to bypass the fetch check. This setting is only required if your application is being used in an environment where fetch would fail to send the failure events such as if the SDK Loader Script isn't loading successfully. + | crossOrigin | string | Optional | By including this setting, the script tag added to download the SDK includes the crossOrigin attribute with this string value. Use this setting when you need to provide support for CORS. When not defined (the default), no crossOrigin attribute is added. Recommended values are not defined (the default), "", or "anonymous". For all valid values, see the [cross origin HTML attribute](https://developer.mozilla.org/docs/Web/HTML/Attributes/crossorigin) documentation. + | onInit | function(aiSdk) { ... } | Optional | This callback function is called after the main SDK script has been successfully loaded and initialized from the CDN (based on the src value). This callback function is useful when you need to insert a telemetry initializer. It's passed one argument, which is a reference to the SDK instance that's being called for and is also called before the first initial page view. If the SDK has already been loaded and initialized, this callback is still called. NOTE: During the processing of the sdk.queue array, this callback is called. You CANNOT add any more items to the queue because they're ignored and dropped. (Added as part of SDK Loader Script version 5--the sv:"5" value within the script). | ++#### JavaScript telemetry initializers ++See [JavaScript telemetry initializers](./api-filtering-sampling.md#javascript-telemetry-initializers). ++### SDK configuration ++ | Name | Type | Required? | Description + |||--| + | cfg | object | Required | The required connection string and optional [SDK configuration](./javascript-sdk-advanced.md#sdk-configuration) passed to the Application Insights JavaScript SDK during initialization. ++### [npm Package](#tab/npmpackage) ++Use this method if you're creating your own bundles and you want to include the Application Insights code in your own bundle. ++The npm setup installs the JavaScript SDK as a dependency to your project and enables IntelliSense. ++This option is only needed for developers who require more custom events and configuration. ++1. Use the following command to install the Microsoft Application Insights JavaScript SDK - Web package. ++ ```sh + npm i --save @microsoft/applicationinsights-web + ``` ++ > [!Note] + > *Typings are included with this package*, so you do *not* need to install a separate typings package. ++1. Add the following JavaScript to your application's code. ++ > [!NOTE] + > Where and also how you add this JavaScript code depends on your application code. For example, you might be able to add it exactly as it appears below or you may need to create wrappers around it. + + ```js + import { ApplicationInsights } from '@microsoft/applicationinsights-web' ++ const appInsights = new ApplicationInsights({ config: { + connectionString: 'YOUR_CONNECTION_STRING_GOES_HERE' + /* ...Other Configuration Options... */ + } }); + appInsights.loadAppInsights(); + appInsights.trackPageView(); + ``` ++1. Add your connection string: ++ 1. Navigate to the **Overview** pane of your Application Insights resource. + 1. Locate the **Connection String**. + 1. Select the **Copy to clipboard** icon to copy the connection string to the clipboard. ++ :::image type="content" source="media/migrate-from-instrumentation-keys-to-connection-strings/migrate-from-instrumentation-keys-to-connection-strings.png" alt-text="Screenshot that shows Application Insights overview and connection string." lightbox="media/migrate-from-instrumentation-keys-to-connection-strings/migrate-from-instrumentation-keys-to-connection-strings.png"::: ++ 1. Replace the placeholder `'YOUR_CONNECTION_STRING_GOES_HERE'` in the JavaScript code with your connection string pasted to the clipboard. + + > [!NOTE] + > An Application Insights [connection string](sdk-connection-string.md) contains information to connect to the Azure cloud and associate telemetry data with a specific Application Insights resource. The connection string includes the Instrumentation Key (a unique identifier), the endpoint suffix (to specify the Azure cloud), and optional explicit endpoints for individual services. The connection string isn't considered a security token or key. ++1. (Optional) Add [SDK configuration](./javascript-sdk-advanced.md#sdk-configuration). ++ ## What is collected automatically? dataset Additional information is available for the following advanced scenarios: -- [JavaScript SDK npm setup](javascript-sdk-advanced.md#npm-setup) - [React plugin](javascript-framework-extensions.md?tabs=react) - [React native plugin](javascript-framework-extensions.md?tabs=reactnative) - [Angular plugin](javascript-framework-extensions.md?tabs=reactnative) |
azure-monitor | Nodejs | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/nodejs.md | Review their descriptions in your IDE's built-in type hinting or [applicationins ### Sampling -By default, the SDK will send all collected data to the Application Insights service. If you want to enable sampling to reduce the amount of data, set the `samplingPercentage` field on the `config` object of a client. Setting `samplingPercentage` to 100 (the default) means all data will be sent, and 0 means nothing will be sent. +By default, the SDK sends all collected data to the Application Insights service. If you want to enable sampling to reduce the amount of data, set the `samplingPercentage` field on the `config` object of a client. Setting `samplingPercentage` to 100 (the default) means all data will be sent, and 0 means nothing will be sent. -If you're using automatic correlation, all data associated with a single request will be included or excluded as a unit. +If you're using automatic correlation, all data associated with a single request is included or excluded as a unit. Add code such as the following to enable sampling: appInsights.start(); ### Automatic web Instrumentation[Preview] - Automatic web Instrumentation can be enabled for node server via configuration + Automatic web Instrumentation can be enabled for node server via SDK Loader Script injection by configuration. ```javascript let appInsights = require("applicationinsights"); appInsights.setup("<connection_string>") or by setting environment variable `APPLICATIONINSIGHTS_WEB_INSTRUMENTATION_ENABLED = true`. -Web Instrumentation will be enabled on node server responses when all of the following requirements are met: +Web Instrumentation is enabled on node server responses when all of the following requirements are met: - Response has status code `200`. - Response method is `GET`.-- Sever response has `Content-Type` html.+- Server response has `Content-Type` html. - Server response contains both `<head>` and `</head>` Tags. - If response is compressed, it must have only one `Content-Encoding` type, and encoding type must be one of `gzip`, `br` or `deflate`. - Response does not contain current /backup web Instrumentation CDN endpoints. (current and backup Web Instrumentation CDN endpoints [here](https://github.com/microsoft/ApplicationInsights-JS#active-public-cdn-endpoints)) web Instrumentation connection string can be changed by setting environment vari ### Automatic third-party instrumentation -To track context across asynchronous calls, some changes are required in third-party libraries, such as MongoDB and Redis. By default, Application Insights will use [`diagnostic-channel-publishers`](https://github.com/Microsoft/node-diagnostic-channel/tree/master/src/diagnostic-channel-publishers) to monkey-patch some of these libraries. This feature can be disabled by setting the `APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL` environment variable. +To track context across asynchronous calls, some changes are required in third-party libraries, such as MongoDB and Redis. By default, Application Insights uses [`diagnostic-channel-publishers`](https://github.com/Microsoft/node-diagnostic-channel/tree/master/src/diagnostic-channel-publishers) to monkey-patch some of these libraries. This feature can be disabled by setting the `APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL` environment variable. > [!NOTE] > By setting that environment variable, events might not be correctly associated with the right operation. To track context across asynchronous calls, some changes are required in third-p Currently, nine packages are instrumented: `bunyan`,`console`,`mongodb`,`mongodb-core`,`mysql`,`redis`,`winston`,`pg`, and `pg-pool`. For information about exactly which version of these packages are patched, see the [diagnostic-channel-publishers' README](https://github.com/Microsoft/node-diagnostic-channel/blob/master/src/diagnostic-channel-publishers/README.md). -The `bunyan`, `winston`, and `console` patches will generate Application Insights trace events based on whether `setAutoCollectConsole` is enabled. The rest will generate Application Insights dependency events based on whether `setAutoCollectDependencies` is enabled. +The `bunyan`, `winston`, and `console` patches generate Application Insights trace events based on whether `setAutoCollectConsole` is enabled. The rest generates Application Insights dependency events based on whether `setAutoCollectDependencies` is enabled. ### Live metrics To enable sending live metrics from your app to Azure, use `setSendLiveMetrics(t > [!NOTE] > The ability to send extended native metrics was added in version 1.4.0. -To enable sending extended native metrics from your app to Azure, install the separate native metrics package. The SDK will automatically load when it's installed and start collecting Node.js native metrics. +To enable sending extended native metrics from your app to Azure, install the separate native metrics package. The SDK automatically loads when it's installed and start collecting Node.js native metrics. ```bash npm install applicationinsights-native-metrics Currently, the native metrics package performs autocollection of garbage collect ### Distributed tracing modes -By default, the SDK will send headers understood by other applications or services instrumented with an Application Insights SDK. You can enable sending and receiving of [W3C Trace Context](https://github.com/w3c/trace-context) headers in addition to the existing AI headers. In this way, you won't break correlation with any of your existing legacy services. Enabling W3C headers will allow your app to correlate with other services not instrumented with Application Insights but that do adopt this W3C standard. +By default, the SDK sends headers understood by other applications or services instrumented with an Application Insights SDK. You can enable sending and receiving of [W3C Trace Context](https://github.com/w3c/trace-context) headers in addition to the existing AI headers. In this way, you won't break correlation with any of your existing legacy services. Enabling W3C headers allows your app to correlate with other services not instrumented with Application Insights but that do adopt this W3C standard. ```Javascript const appInsights = require("applicationinsights"); server.on("listening", () => { By default, telemetry is buffered for 15 seconds before it's sent to the ingestion server. If your application has a short lifespan, such as a CLI tool, it might be necessary to manually flush your buffered telemetry when the application terminates by using `appInsights.defaultClient.flush()`. -If the SDK detects that your application is crashing, it will call flush for you by using `appInsights.defaultClient.flush({ isAppCrashing: true })`. With the flush option `isAppCrashing`, your application is assumed to be in an abnormal state and isn't suitable to send telemetry. Instead, the SDK will save all buffered telemetry to [persistent storage](./data-retention-privacy.md#nodejs) and let your application terminate. When your application starts again, it will try to send any telemetry that was saved to persistent storage. +If the SDK detects that your application is crashing, it calls flush for you by using `appInsights.defaultClient.flush({ isAppCrashing: true })`. With the flush option `isAppCrashing`, your application is assumed to be in an abnormal state and isn't suitable to send telemetry. Instead, the SDK saves all buffered telemetry to [persistent storage](./data-retention-privacy.md#nodejs) and lets your application terminate. When your application starts again, it tries to send any telemetry that was saved to persistent storage. ### Preprocess data with telemetry processors You can process and filter collected data before it's sent for retention by usin public addTelemetryProcessor(telemetryProcessor: (envelope: Contracts.Envelope, context: { http.RequestOptions, http.ClientRequest, http.ClientResponse, correlationContext }) => boolean) ``` -If a telemetry processor returns `false`, that telemetry item won't be sent. +If a telemetry processor returns `false`, that telemetry item isn't sent. All telemetry processors receive the telemetry data and its envelope to inspect and modify. They also receive a context object. The contents of this object are defined by the `contextObjects` parameter when calling a track method for manually tracked telemetry. For automatically collected telemetry, this object is filled with available request information and the persistent request content as provided by `appInsights.getCorrelationContext()` (if automatic dependency correlation is enabled). |
azure-monitor | Opentelemetry Dotnet Exporter | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/opentelemetry-dotnet-exporter.md | - Title: Enable the Azure Monitor OpenTelemetry exporter for .NET applications -description: This article provides guidance on how to enable the Azure Monitor OpenTelemetry exporter for .NET applications. - Previously updated : 05/10/2023----# Enable Azure Monitor OpenTelemetry for .NET applications --This article describes how to enable and configure OpenTelemetry-based data collection to power the experiences within [Azure Monitor Application Insights](app-insights-overview.md#application-insights-overview). To learn more about OpenTelemetry concepts, see the [OpenTelemetry overview](opentelemetry-overview.md) or [OpenTelemetry FAQ](/azure/azure-monitor/faq#opentelemetry). --## OpenTelemetry Release Status --The OpenTelemetry exporter for .NET is currently available as a public preview. --[Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) --## Get started --Follow the steps in this section to instrument your application with OpenTelemetry. --### Prerequisites --- An Azure subscription: [Create an Azure subscription for free](https://azure.microsoft.com/free/)-- An Application Insights resource: [Create an Application Insights resource](create-workspace-resource.md#create-a-workspace-based-resource)-- Application using an officially supported version of [.NET Core](https://dotnet.microsoft.com/download/dotnet) or [.NET Framework](https://dotnet.microsoft.com/download/dotnet-framework) that's at least .NET Framework 4.6.2--### Install the client libraries --Install the latest [Azure.Monitor.OpenTelemetry.Exporter](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter) NuGet package: --```dotnetcli -dotnet add package --prerelease Azure.Monitor.OpenTelemetry.Exporter -``` --### Enable Azure Monitor Application Insights --This section provides guidance that shows how to enable OpenTelemetry. --#### Instrument with OpenTelemetry --The following code demonstrates how to enable OpenTelemetry in a C# console application by setting up OpenTelemetry TracerProvider. This code must be in the application startup. For ASP.NET Core, it's done typically in the `ConfigureServices` method of the application `Startup` class. For ASP.NET applications, it's done typically in `Global.asax.cs`. --```csharp -public class Program -{ - private static readonly ActivitySource MyActivitySource = new ActivitySource( - "OTel.AzureMonitor.Demo"); -- public static void Main() - { - using var tracerProvider = Sdk.CreateTracerProviderBuilder() - .AddSource("OTel.AzureMonitor.Demo") - .AddAzureMonitorTraceExporter(o => - { - o.ConnectionString = "<Your Connection String>"; - }) - .Build(); -- using (var activity = MyActivitySource.StartActivity("TestActivity")) - { - activity?.SetTag("CustomTag1", "Value1"); - activity?.SetTag("CustomTag2", "Value2"); - } -- System.Console.WriteLine("Press Enter key to exit."); - System.Console.ReadLine(); - } -} -``` --> [!NOTE] -> The `Activity` and `ActivitySource` classes from the `System.Diagnostics` namespace represent the OpenTelemetry concepts of `Span` and `Tracer`, respectively. You create `ActivitySource` directly by using its constructor instead of by using `TracerProvider`. Each [`ActivitySource`](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/trace/customizing-the-sdk#activity-source) class must be explicitly connected to `TracerProvider` by using `AddSource()`. That's because parts of the OpenTelemetry tracing API are incorporated directly into the .NET runtime. To learn more, see [Introduction to OpenTelemetry .NET Tracing API](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Api/README.md#introduction-to-opentelemetry-net-tracing-api). --#### Set the Application Insights connection string --You can set the connection string either programmatically or by setting the environment variable `APPLICATIONINSIGHTS_CONNECTION_STRING`. In the event that both have been set, the programmatic connection string will take precedence. --You can find your connection string in the Overview Pane of your Application Insights Resource. ---Here's how you set the connection string. --Replace the `<Your Connection String>` in the preceding code with the connection string from *your* Application Insights resource. --#### Confirm data is flowing --Run your application and open your **Application Insights Resource** tab in the Azure portal. It might take a few minutes for data to show up in the portal. ---> [!IMPORTANT] -> If you have two or more services that emit telemetry to the same Application Insights resource, you're required to [set Cloud Role Names](#set-the-cloud-role-name-and-the-cloud-role-instance) to represent them properly on the Application Map. --As part of using Application Insights instrumentation, we collect and send diagnostic data to Microsoft. This data helps us run and improve Application Insights. To learn more, see [Statsbeat in Azure Application Insights](./statsbeat.md). --## Set the Cloud Role Name and the Cloud Role Instance --You might want to update the [Cloud Role Name](app-map.md#understand-the-cloud-role-name-within-the-context-of-an-application-map) and the Cloud Role Instance from the default values to something that makes sense to your team. They'll appear on the Application Map as the name underneath a node. --Set the Cloud Role Name and the Cloud Role Instance via [Resource](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/sdk.md#resource-sdk) attributes. Cloud Role Name uses `service.namespace` and `service.name` attributes, although it falls back to `service.name` if `service.namespace` isn't set. Cloud Role Instance uses the `service.instance.id` attribute value. For information on standard attributes for resources, see [Resource Semantic Conventions](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md). --```csharp -// Setting role name and role instance -var resourceAttributes = new Dictionary<string, object> { - { "service.name", "my-service" }, - { "service.namespace", "my-namespace" }, - { "service.instance.id", "my-instance" }}; -var resourceBuilder = ResourceBuilder.CreateDefault().AddAttributes(resourceAttributes); -// Done setting role name and role instance --// Set ResourceBuilder on the provider. -var tracerProvider = Sdk.CreateTracerProviderBuilder() - .SetResourceBuilder(resourceBuilder) - .AddSource("OTel.AzureMonitor.Demo") - .AddAzureMonitorTraceExporter(o => - { - o.ConnectionString = "<Your Connection String>"; - }) - .Build(); -``` --## Enable Sampling --You may want to enable sampling to reduce your data ingestion volume, which reduces your cost. Azure Monitor provides a custom *fixed-rate* sampler that populates events with a "sampling ratio", which Application Insights converts to "ItemCount". The *fixed-rate* sampler ensures accurate experiences and event counts. The sampler is designed to preserve your traces across services, and it's interoperable with older Application Insights SDKs. For more information, see [Learn More about sampling](sampling.md#brief-summary). --> [!NOTE] -> Metrics are unaffected by sampling. --The sampler expects a sample rate of between 0 and 1 inclusive. A rate of 0.1 means approximately 10% of your traces will be sent. --In this example, we utilize the `ApplicationInsightsSampler`, which offers compatibility with Application Insights SDKs. --```dotnetcli -dotnet add package --prerelease OpenTelemetry.Extensions.AzureMonitor -``` --```csharp -var tracerProvider = Sdk.CreateTracerProviderBuilder() - .AddSource("OTel.AzureMonitor.Demo") - .SetSampler(new ApplicationInsightsSampler(0.1F)) - .AddAzureMonitorTraceExporter(o => - { - o.ConnectionString = "<Your Connection String>"; - }) - .Build(); -``` --> [!TIP] -> When using fixed-rate/percentage sampling and you aren't sure what to set the sampling rate as, start at 5% (i.e., 0.05 sampling ratio) and adjust the rate based on the accuracy of the operations shown in the failures and performance blades. A higher rate generally results in higher accuracy. However, ANY sampling will affect accuracy so we recommend alerting on [OpenTelemetry metrics](#metrics), which are unaffected by sampling. --## Instrumentation libraries --The following libraries are validated to work with the current release. --> [!WARNING] -> Instrumentation libraries are based on experimental OpenTelemetry specifications, which impacts languages in [preview status](#opentelemetry-release-status). Microsoft's *preview* support commitment is to ensure that the following libraries emit data to Azure Monitor Application Insights, but it's possible that breaking changes or experimental mapping will block some data elements. --### Distributed Tracing --Requests -- [ASP.NET](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.AspNet-1.0.0-rc9.8/src/OpenTelemetry.Instrumentation.AspNet/README.md) <sup>[1](#FOOTNOTEONE)</sup> version:- [1.0.0-rc9.8](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet/1.0.0-rc9.8) -- [ASP.NET- Core](https://github.com/open-telemetry/opentelemetry-dotnet/blob/1.0.0-rc9.14/src/OpenTelemetry.Instrumentation.AspNetCore/README.md) <sup>[1](#FOOTNOTEONE)</sup> version: - [1.0.0-rc9.14](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNetCore/1.0.0-rc9.14) --Dependencies -- [HttpClient](https://github.com/open-telemetry/opentelemetry-dotnet/blob/1.0.0-rc9.14/src/OpenTelemetry.Instrumentation.Http/README.md) <sup>[1](#FOOTNOTEONE)</sup> version:- [1.0.0-rc9.14](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Http/1.0.0-rc9.14) -- [SqlClient](https://github.com/open-telemetry/opentelemetry-dotnet/blob/1.0.0-rc9.14/src/OpenTelemetry.Instrumentation.SqlClient/README.md) <sup>[1](#FOOTNOTEONE)</sup> version:- [1.0.0-rc9.14](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.SqlClient/1.0.0-rc9.14) --### Metrics --- [ASP.NET](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.AspNet-1.0.0-rc9.8/src/OpenTelemetry.Instrumentation.AspNet/README.md) version:- [1.0.0-rc9.8](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet/1.0.0-rc9.8) -- [ASP.NET- Core](https://github.com/open-telemetry/opentelemetry-dotnet/blob/1.0.0-rc9.14/src/OpenTelemetry.Instrumentation.AspNetCore/README.md) version: - [1.0.0-rc9.14](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNetCore/1.0.0-rc9.14) -- [HttpClient](https://github.com/open-telemetry/opentelemetry-dotnet/blob/1.0.0-rc9.14/src/OpenTelemetry.Instrumentation.Http/README.md) version:- [1.0.0-rc9.14](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Http/1.0.0-rc9.14) -- [Runtime](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.Runtime-1.0.0/src/OpenTelemetry.Instrumentation.Runtime/README.md) version: [1.0.0](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Runtime/1.0.0)--> [!TIP] -> The OpenTelemetry-based offerings currently emit all metrics as [Custom Metrics](#add-custom-metrics) and [Performance Counters](standard-metrics.md#performance-counters) in Metrics Explorer. For .NET, Node.js, and Python, whatever you set as the meter name becomes the metrics namespace. --### Logs --```csharp -public class Program -{ - public static void Main() - { - using var loggerFactory = LoggerFactory.Create(builder => - { - builder.AddOpenTelemetry(options => - { - options.AddAzureMonitorLogExporter(o => - { - o.ConnectionString = "<Your Connection String>"; - }) - }); - }); -- var logger = loggerFactory.CreateLogger<Program>(); -- logger.LogInformation(eventId: 123, "Hello {name}.", "World"); -- System.Console.WriteLine("Press Enter key to exit."); - System.Console.ReadLine(); - } -} -``` --**Footnote** -- <a name="FOOTNOTEONE">1</a>: Supports automatic reporting of unhandled exceptions--## Collect custom telemetry --This section explains how to collect custom telemetry from your application. - -Depending on your language and signal type, there are different ways to collect custom telemetry, including: - -- OpenTelemetry API-- Language-specific logging/metrics libraries-- Application Insights Classic API- -The following table represents the currently supported custom telemetry types: --| Language | Custom Events | Custom Metrics | Dependencies | Exceptions | Page Views | Requests | Traces | -|-||-|--|||-|--| -| **.NET** | | | | | | | | -| OpenTelemetry API | | | Yes | Yes | | Yes | | -| iLogger API | | | | | | | Yes | -| AI Classic API | | | | | | | | --### Add Custom Metrics --> [!NOTE] -> Custom Metrics are under preview in Azure Monitor Application Insights. Custom metrics without dimensions are available by default. To view and alert on dimensions, you need to [opt-in](pre-aggregated-metrics-log-metrics.md#custom-metrics-dimensions-and-pre-aggregation). --You may want to collect metrics beyond what is collected by [instrumentation libraries](#instrumentation-libraries). --The OpenTelemetry API offers six metric "instruments" to cover various metric scenarios and you'll need to pick the correct "Aggregation Type" when visualizing metrics in Metrics Explorer. This requirement is true when using the OpenTelemetry Metric API to send metrics and when using an instrumentation library. --The following table shows the recommended [aggregation types](../essentials/metrics-aggregation-explained.md#aggregation-types) for each of the OpenTelemetry Metric Instruments. --| OpenTelemetry Instrument | Azure Monitor Aggregation Type | -||| -| Counter | Sum | -| Asynchronous Counter | Sum | -| Histogram | Min, Max, Average, Sum and Count | -| Asynchronous Gauge | Average | -| UpDownCounter | Sum | -| Asynchronous UpDownCounter | Sum | --> [!CAUTION] -> Aggregation types beyond what's shown in the table typically aren't meaningful. --The [OpenTelemetry Specification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#instrument) -describes the instruments and provides examples of when you might use each one. --> [!TIP] -> The histogram is the most versatile and most closely equivalent to the Application Insights Track Metric Classic API. Azure Monitor currently flattens the histogram instrument into our five supported aggregation types, and support for percentiles is underway. Although less versatile, other OpenTelemetry instruments have a lesser impact on your application's performance. --#### Histogram Example --```csharp -public class Program -{ - private static readonly Meter meter = new("OTel.AzureMonitor.Demo"); -- public static void Main() - { - using var meterProvider = Sdk.CreateMeterProviderBuilder() - .AddMeter("OTel.AzureMonitor.Demo") - .AddAzureMonitorMetricExporter(o => - { - o.ConnectionString = "<Your Connection String>"; - }) - .Build(); -- Histogram<long> myFruitSalePrice = meter.CreateHistogram<long>("FruitSalePrice"); -- var rand = new Random(); - myFruitSalePrice.Record(rand.Next(1, 1000), new("name", "apple"), new("color", "red")); - myFruitSalePrice.Record(rand.Next(1, 1000), new("name", "lemon"), new("color", "yellow")); - myFruitSalePrice.Record(rand.Next(1, 1000), new("name", "lemon"), new("color", "yellow")); - myFruitSalePrice.Record(rand.Next(1, 1000), new("name", "apple"), new("color", "green")); - myFruitSalePrice.Record(rand.Next(1, 1000), new("name", "apple"), new("color", "red")); - myFruitSalePrice.Record(rand.Next(1, 1000), new("name", "lemon"), new("color", "yellow")); -- System.Console.WriteLine("Press Enter key to exit."); - System.Console.ReadLine(); - } -} -``` --#### Counter Example --```csharp -public class Program -{ - private static readonly Meter meter = new("OTel.AzureMonitor.Demo"); -- public static void Main() - { - using var meterProvider = Sdk.CreateMeterProviderBuilder() - .AddMeter("OTel.AzureMonitor.Demo") - .AddAzureMonitorMetricExporter(o => - { - o.ConnectionString = "<Your Connection String>"; - }) - .Build(); -- Counter<long> myFruitCounter = meter.CreateCounter<long>("MyFruitCounter"); -- myFruitCounter.Add(1, new("name", "apple"), new("color", "red")); - myFruitCounter.Add(2, new("name", "lemon"), new("color", "yellow")); - myFruitCounter.Add(1, new("name", "lemon"), new("color", "yellow")); - myFruitCounter.Add(2, new("name", "apple"), new("color", "green")); - myFruitCounter.Add(5, new("name", "apple"), new("color", "red")); - myFruitCounter.Add(4, new("name", "lemon"), new("color", "yellow")); -- System.Console.WriteLine("Press Enter key to exit."); - System.Console.ReadLine(); - } -} -``` -#### Gauge Example --```csharp -public class Program -{ - private static readonly Meter meter = new("OTel.AzureMonitor.Demo"); -- public static void Main() - { - using var meterProvider = Sdk.CreateMeterProviderBuilder() - .AddMeter("OTel.AzureMonitor.Demo") - .AddAzureMonitorMetricExporter(o => - { - o.ConnectionString = "<Your Connection String>"; - }) - .Build(); -- var process = Process.GetCurrentProcess(); - - ObservableGauge<int> myObservableGauge = meter.CreateObservableGauge("Thread.State", () => GetThreadState(process)); -- System.Console.WriteLine("Press Enter key to exit."); - System.Console.ReadLine(); - } - - private static IEnumerable<Measurement<int>> GetThreadState(Process process) - { - foreach (ProcessThread thread in process.Threads) - { - yield return new((int)thread.ThreadState, new("ProcessId", process.Id), new("ThreadId", thread.Id)); - } - } -} -``` --### Add Custom Exceptions --Select instrumentation libraries automatically report exceptions to Application Insights. -However, you may want to manually report exceptions beyond what instrumentation libraries report. -For instance, exceptions caught by your code aren't ordinarily reported. You may wish to report them -to draw attention in relevant experiences including the failures section and end-to-end transaction views. --```csharp -using (var activity = activitySource.StartActivity("ExceptionExample")) -{ - try - { - throw new Exception("Test exception"); - } - catch (Exception ex) - { - activity?.SetStatus(ActivityStatusCode.Error); - activity?.RecordException(ex); - } -} -``` --### Add Custom Spans --You may want to add a custom span when there's a dependency request that's not already collected by an instrumentation library or an application process that you wish to model as a span on the end-to-end transaction view. --> [!NOTE] -> The `Activity` and `ActivitySource` classes from the `System.Diagnostics` namespace represent the OpenTelemetry concepts of `Span` and `Tracer`, respectively. You create `ActivitySource` directly by using its constructor instead of by using `TracerProvider`. Each [`ActivitySource`](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/trace/customizing-the-sdk#activity-source) class must be explicitly connected to `TracerProvider` by using `AddSource()`. That's because parts of the OpenTelemetry tracing API are incorporated directly into the .NET runtime. To learn more, see [Introduction to OpenTelemetry .NET Tracing API](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Api/README.md#introduction-to-opentelemetry-net-tracing-api). --```csharp -using var tracerProvider = Sdk.CreateTracerProviderBuilder() - .AddSource("ActivitySourceName") - .AddAzureMonitorTraceExporter(o => o.ConnectionString = "<Your Connection String>") - .Build(); --var activitySource = new ActivitySource("ActivitySourceName"); --using (var activity = activitySource.StartActivity("CustomActivity")) -{ - // your code here -} -``` --### Send custom telemetry using the Application Insights Classic API - -We recommend you use the OpenTelemetry APIs whenever possible, but there may be some scenarios when you have to use the Application Insights Classic APIs. - -This is not available in .NET. --## Modify telemetry --This section explains how to modify telemetry. --### Add span attributes --These attributes might include adding a custom property to your telemetry. You might also use attributes to set optional fields in the Application Insights schema, like Client IP. --#### Add a custom property to a Span --Any [attributes](#add-span-attributes) you add to spans are exported as custom properties. They populate the _customDimensions_ field in the requests, dependencies, traces, or exceptions table. --To add span attributes, use either of the following two ways: --* Use options provided by [instrumentation libraries](#instrumentation-libraries). -* Add a custom span processor. --> [!TIP] -> The advantage of using options provided by instrumentation libraries, when they're available, is that the entire context is available. As a result, users can select to add or filter more attributes. For example, the enrich option in the HttpClient instrumentation library gives users access to the httpRequestMessage itself. They can select anything from it and store it as an attribute. --1. Many instrumentation libraries provide an enrich option. For guidance, see the readme files of individual instrumentation libraries: - - [ASP.NET](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.AspNet-1.0.0-rc9.6/src/OpenTelemetry.Instrumentation.AspNet/README.md#enrich) - - [ASP.NET Core](https://github.com/open-telemetry/opentelemetry-dotnet/blob/1.0.0-rc9.7/src/OpenTelemetry.Instrumentation.AspNetCore/README.md#enrich) - - [HttpClient and HttpWebRequest](https://github.com/open-telemetry/opentelemetry-dotnet/blob/1.0.0-rc9.7/src/OpenTelemetry.Instrumentation.Http/README.md#enrich) --1. Use a custom processor: --> [!TIP] -> Add the processor shown here *before* the Azure Monitor Exporter. --```csharp -using var tracerProvider = Sdk.CreateTracerProviderBuilder() - .AddSource("OTel.AzureMonitor.Demo") - .AddProcessor(new ActivityEnrichingProcessor()) - .AddAzureMonitorTraceExporter(o => - { - o.ConnectionString = "<Your Connection String>" - }) - .Build(); -``` --Add `ActivityEnrichingProcessor.cs` to your project with the following code: --```csharp -public class ActivityEnrichingProcessor : BaseProcessor<Activity> -{ - public override void OnEnd(Activity activity) - { - // The updated activity will be available to all processors which are called after this processor. - activity.DisplayName = "Updated-" + activity.DisplayName; - activity.SetTag("CustomDimension1", "Value1"); - activity.SetTag("CustomDimension2", "Value2"); - } -} -``` --#### Set the user IP --You can populate the _client_IP_ field for requests by setting the `http.client_ip` attribute on the span. Application Insights uses the IP address to generate user location attributes and then [discards it by default](ip-collection.md#default-behavior). --Use the add [custom property example](#add-a-custom-property-to-a-span), but replace the following lines of code in `ActivityEnrichingProcessor.cs`: --```C# -// only applicable in case of activity.Kind == Server -activity.SetTag("http.client_ip", "<IP Address>"); -``` --#### Set the user ID or authenticated user ID --You can populate the _user_Id_ or _user_AuthenticatedId_ field for requests by using the guidance below. User ID is an anonymous user identifier. Authenticated User ID is a known user identifier. --> [!IMPORTANT] -> Consult applicable privacy laws before you set the Authenticated User ID. --Use the add [custom property example](#add-a-custom-property-to-a-span). --```csharp -activity?.SetTag("enduser.id", "<User Id>"); -``` --### Add Log Attributes --OpenTelemetry uses .NET's ILogger. -Attaching custom dimensions to logs can be accomplished using a [message template](/dotnet/core/extensions/logging?tabs=command-line#log-message-template). --### Filter telemetry --You might use the following ways to filter out telemetry before it leaves your application. --1. Many instrumentation libraries provide a filter option. For guidance, see the readme files of individual instrumentation libraries: - - [ASP.NET](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.AspNet-1.0.0-rc9.6/src/OpenTelemetry.Instrumentation.AspNet/README.md#filter) - - [ASP.NET Core](https://github.com/open-telemetry/opentelemetry-dotnet/blob/1.0.0-rc9.7/src/OpenTelemetry.Instrumentation.AspNetCore/README.md#filter) - - [HttpClient and HttpWebRequest](https://github.com/open-telemetry/opentelemetry-dotnet/blob/1.0.0-rc9.7/src/OpenTelemetry.Instrumentation.Http/README.md#filter) --1. Use a custom processor: - - ```csharp - using var tracerProvider = Sdk.CreateTracerProviderBuilder() - .AddSource("OTel.AzureMonitor.Demo") - .AddProcessor(new ActivityFilteringProcessor()) - .AddAzureMonitorTraceExporter(o => - { - o.ConnectionString = "<Your Connection String>" - }) - .Build(); - ``` - - Add `ActivityFilteringProcessor.cs` to your project with the following code: - - ```csharp - public class ActivityFilteringProcessor : BaseProcessor<Activity> - { - public override void OnStart(Activity activity) - { - // prevents all exporters from exporting internal activities - if (activity.Kind == ActivityKind.Internal) - { - activity.IsAllDataRequested = false; - } - } - } - ``` --1. If a particular source isn't explicitly added by using `AddSource("ActivitySourceName")`, then none of the activities created by using that source will be exported. --### Get the trace ID or span ID --You might want to get the trace ID or span ID. If you have logs that are sent to a different destination besides Application Insights, you might want to add the trace ID or span ID to enable better correlation when you debug and diagnose issues. --> [!NOTE] -> The `Activity` and `ActivitySource` classes from the `System.Diagnostics` namespace represent the OpenTelemetry concepts of `Span` and `Tracer`, respectively. That's because parts of the OpenTelemetry tracing API are incorporated directly into the .NET runtime. To learn more, see [Introduction to OpenTelemetry .NET Tracing API](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Api/README.md#introduction-to-opentelemetry-net-tracing-api). --```csharp -Activity activity = Activity.Current; -string traceId = activity?.TraceId.ToHexString(); -string spanId = activity?.SpanId.ToHexString(); -``` --## Enable the OTLP Exporter --You might want to enable the OpenTelemetry Protocol (OTLP) Exporter alongside your Azure Monitor Exporter to send your telemetry to two locations. --> [!NOTE] -> The OTLP Exporter is shown for convenience only. We don't officially support the OTLP Exporter or any components or third-party experiences downstream of it. --1. Install the [OpenTelemetry.Exporter.OpenTelemetryProtocol](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/) package along with [Azure.Monitor.OpenTelemetry.Exporter](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter) in your project. --1. Add the following code snippet. This example assumes you have an OpenTelemetry Collector with an OTLP receiver running. For details, see the [example on GitHub](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/examples/Console/TestOtlpExporter.cs). - - ```csharp - // Sends data to Application Insights as well as OTLP - using var tracerProvider = Sdk.CreateTracerProviderBuilder() - .AddSource("OTel.AzureMonitor.Demo") - .AddAzureMonitorTraceExporter(o => - { - o.ConnectionString = "<Your Connection String>" - }) - .AddOtlpExporter() - .Build(); - ``` --## Support --- For OpenTelemetry issues, contact the [OpenTelemetry .NET community](https://github.com/open-telemetry/opentelemetry-dotnet) directly.-- For a list of open issues related to Azure Monitor Exporter, see the [GitHub Issues Page](https://github.com/Azure/azure-sdk-for-net/issues?q=is%3Aopen+is%3Aissue+label%3A%22Monitor+-+Exporter%22).--## OpenTelemetry feedback --To provide feedback: --- Fill out the OpenTelemetry community's [customer feedback survey](https://docs.google.com/forms/d/e/1FAIpQLScUt4reClurLi60xyHwGozgM9ZAz8pNAfBHhbTZ4gFWaaXIRQ/viewform).-- Tell Microsoft about yourself by joining the [OpenTelemetry Early Adopter Community](https://aka.ms/AzMonOTel/).-- Engage with other Azure Monitor users in the [Microsoft Tech Community](https://techcommunity.microsoft.com/t5/azure-monitor/bd-p/AzureMonitor).-- Make a feature request at the [Azure Feedback Forum](https://feedback.azure.com/d365community/forum/3887dc70-2025-ec11-b6e6-000d3a4f09d0).--## Next steps --- To review the source code, see the [Azure Monitor Exporter GitHub repository](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter).-- To install the NuGet package, check for updates, or view release notes, see the [Azure Monitor Exporter NuGet Package](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/) page.-- To become more familiar with Azure Monitor Application Insights and OpenTelemetry, see the [Azure Monitor Example Application](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Demo).-- To learn more about OpenTelemetry and its community, see the [OpenTelemetry .NET GitHub repository](https://github.com/open-telemetry/opentelemetry-dotnet).-- To enable usage experiences, [enable web or browser user monitoring](javascript.md). |
azure-monitor | Sdk Connection String | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/sdk-connection-string.md | For more information, see [Connection string configuration](./java-standalone-co # [JavaScript](#tab/js) -JavaScript doesn't support the use of environment variables. --Using the snippet: --The current snippet is version 5 and is shown here. The version is encoded in the snippet as sv:"#". The [current version is also available on GitHub](https://go.microsoft.com/fwlink/?linkid=2156318). --```html -<script type="text/javascript"> -!function(T,l,y){var S=T.location,k="script",D="instrumentationKey",C="ingestionendpoint",I="disableExceptionTracking",E="ai.device.",b="toLowerCase",w="crossOrigin",N="POST",e="appInsightsSDK",t=y.name||"appInsights";(y.name||T[e])&&(T[e]=t);var n=T[t]||function(d){var g=!1,f=!1,m={initialize:!0,queue:[],sv:"5",version:2,config:d};function v(e,t){var n={},a="Browser";return n[E+"id"]=a[b](),n[E+"type"]=a,n["ai.operation.name"]=S&&S.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(m.sv||m.version),{time:function(){var e=new Date;function t(e){var t=""+e;return 1===t.length&&(t="0"+t),t}return e.getUTCFullYear()+"-"+t(1+e.getUTCMonth())+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+"."+((e.getUTCMilliseconds()/1e3).toFixed(3)+"").slice(2,5)+"Z"}(),iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}}}}var h=d.url||y.src;if(h){function a(e){var t,n,a,i,r,o,s,c,u,p,l;g=!0,m.queue=[],f||(f=!0,t=h,s=function(){var e={},t=d.connectionString;if(t)for(var n=t.split(";"),a=0;a<n.length;a++){var i=n[a].split("=");2===i.length&&(e[i[0][b]()]=i[1])}if(!e[C]){var r=e.endpointsuffix,o=r?e.location:null;e[C]="https://"+(o?o+".":"")+"dc."+(r||"services.visualstudio.com")}return e}(),c=s[D]||d[D]||"",u=s[C],p=u?u+"/v2/track":d.endpointUrl,(l=[]).push((n="SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)",a=t,i=p,(o=(r=v(c,"Exception")).data).baseType="ExceptionData",o.baseData.exceptions=[{typeName:"SDKLoadFailed",message:n.replace(/\./g,"-"),hasFullStack:!1,stack:n+"\nSnippet failed to load ["+a+"] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: "+(S&&S.pathname||"_unknown_")+"\nEndpoint: "+i,parsedStack:[]}],r)),l.push(function(e,t,n,a){var i=v(c,"Message"),r=i.data;r.baseType="MessageData";var o=r.baseData;return o.message='AI (Internal): 99 message:"'+("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) ("+n+")").replace(/\"/g,"")+'"',o.properties={endpoint:a},i}(0,0,t,p)),function(e,t){if(JSON){var n=T.fetch;if(n&&!y.useXhr)n(t,{method:N,body:JSON.stringify(e),mode:"cors"});else if(XMLHttpRequest){var a=new XMLHttpRequest;a.open(N,t),a.setRequestHeader("Content-type","application/json"),a.send(JSON.stringify(e))}}}(l,p))}function i(e,t){f||setTimeout(function(){!t&&m.core||a()},500)}var e=function(){var n=l.createElement(k);n.src=h;var e=y[w];return!e&&""!==e||"undefined"==n[w]||(n[w]=e),n.onload=i,n.onerror=a,n.onreadystatechange=function(e,t){"loaded"!==n.readyState&&"complete"!==n.readyState||i(0,t)},n}();y.ld<0?l.getElementsByTagName("head")[0].appendChild(e):setTimeout(function(){l.getElementsByTagName(k)[0].parentNode.appendChild(e)},y.ld||0)}try{m.cookie=l.cookie}catch(p){}function t(e){for(;e.length;)!function(t){m[t]=function(){var e=arguments;g||m.queue.push(function(){m[t].apply(m,e)})}}(e.pop())}var n="track",r="TrackPage",o="TrackEvent";t([n+"Event",n+"PageView",n+"Exception",n+"Trace",n+"DependencyData",n+"Metric",n+"PageViewPerformance","start"+r,"stop"+r,"start"+o,"stop"+o,"addTelemetryInitializer","setAuthenticatedUserContext","clearAuthenticatedUserContext","flush"]),m.SeverityLevel={Verbose:0,Information:1,Warning:2,Error:3,Critical:4};var s=(d.extensionConfig||{}).ApplicationInsightsAnalytics||{};if(!0!==d[I]&&!0!==s[I]){var c="onerror";t(["_"+c]);var u=T[c];T[c]=function(e,t,n,a,i){var r=u&&u(e,t,n,a,i);return!0!==r&&m["_"+c]({message:e,url:t,lineNumber:n,columnNumber:a,error:i}),r},d.autoExceptionInstrumented=!0}return m}(y.cfg);function a(){y.onInit&&y.onInit(n)}(T[t]=n).queue&&0===n.queue.length?(n.queue.push(a),n.trackPageView({})):a()}(window,document,{ -src: "https://js.monitor.azure.com/scripts/b/ai.2.min.js", // The SDK URL Source -// name: "appInsights", // Global SDK Instance name defaults to "appInsights" when not supplied -// ld: 0, // Defines the load delay (in ms) before attempting to load the sdk. -1 = block page load and add to head. (default) = 0ms load after timeout, -// useXhr: 1, // Use XHR instead of fetch to report failures (if available), -crossOrigin: "anonymous", // When supplied this will add the provided value as the cross origin attribute on the script tag -// onInit: null, // Once the application insights instance has loaded and initialized this callback function will be called with 1 argument -- the sdk instance (DO NOT ADD anything to the sdk.queue -- as they won't get called) -cfg: { // Application Insights Configuration - connectionString:"InstrumentationKey=00000000-0000-0000-0000-000000000000;" -}}); -</script> -``` --> [!NOTE] -> For readability and to reduce possible JavaScript errors, all the possible configuration options are listed on a new line in the preceding snippet code. If you don't want to change the value of a commented line, it can be removed. --Manual setup: -```javascript -import { ApplicationInsights } from '@microsoft/applicationinsights-web' --const appInsights = new ApplicationInsights({ config: { - connectionString: 'InstrumentationKey=00000000-0000-0000-0000-000000000000;' - /* ...Other Configuration Options... */ -} }); -appInsights.loadAppInsights(); -appInsights.trackPageView(); -``` +JavaScript doesn't support the use of environment variables. You have two options: ++- To use the SDK Loader Script, see [SDK Loader Script](./javascript-sdk.md?tabs=sdkloaderscript#enable-application-insights). +- Manual setup: + ```javascript + import { ApplicationInsights } from '@microsoft/applicationinsights-web' ++ const appInsights = new ApplicationInsights({ config: { + connectionString: 'InstrumentationKey=00000000-0000-0000-0000-000000000000;' + /* ...Other Configuration Options... */ + } }); + appInsights.loadAppInsights(); + appInsights.trackPageView(); + ``` # [Node.js](#tab/nodejs) |
azure-monitor | Usage Overview | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/usage-overview.md | The best experience is obtained by installing Application Insights both in your * If you don't want to install server code, [create an Application Insights resource](./create-new-resource.md). -1. **Webpage code:** Add the following script to your webpage before the closing ``</head>``. Replace the instrumentation key with the appropriate value for your Application Insights resource. +1. **Webpage code:** Add the [SDK Loader Script](./javascript-sdk.md?tabs=sdkloaderscript#enable-application-insights) to your webpage before the closing ``</head>``. Replace the connection string with the appropriate value for your Application Insights resource. - The current snippet is version 5 and is listed here. The version is encoded in the snippet as sv:"#". The [current version is also available on GitHub](https://go.microsoft.com/fwlink/?linkid=2156318). -- ```html - <script type="text/javascript"> - !function(T,l,y){var S=T.location,k="script",D="instrumentationKey",C="ingestionendpoint",I="disableExceptionTracking",E="ai.device.",b="toLowerCase",w="crossOrigin",N="POST",e="appInsightsSDK",t=y.name||"appInsights";(y.name||T[e])&&(T[e]=t);var n=T[t]||function(d){var g=!1,f=!1,m={initialize:!0,queue:[],sv:"5",version:2,config:d};function v(e,t){var n={},a="Browser";return n[E+"id"]=a[b](),n[E+"type"]=a,n["ai.operation.name"]=S&&S.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(m.sv||m.version),{time:function(){var e=new Date;function t(e){var t=""+e;return 1===t.length&&(t="0"+t),t}return e.getUTCFullYear()+"-"+t(1+e.getUTCMonth())+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+"."+((e.getUTCMilliseconds()/1e3).toFixed(3)+"").slice(2,5)+"Z"}(),iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}}}}var h=d.url||y.src;if(h){function a(e){var t,n,a,i,r,o,s,c,u,p,l;g=!0,m.queue=[],f||(f=!0,t=h,s=function(){var e={},t=d.connectionString;if(t)for(var n=t.split(";"),a=0;a<n.length;a++){var i=n[a].split("=");2===i.length&&(e[i[0][b]()]=i[1])}if(!e[C]){var r=e.endpointsuffix,o=r?e.location:null;e[C]="https://"+(o?o+".":"")+"dc."+(r||"services.visualstudio.com")}return e}(),c=s[D]||d[D]||"",u=s[C],p=u?u+"/v2/track":d.endpointUrl,(l=[]).push((n="SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)",a=t,i=p,(o=(r=v(c,"Exception")).data).baseType="ExceptionData",o.baseData.exceptions=[{typeName:"SDKLoadFailed",message:n.replace(/\./g,"-"),hasFullStack:!1,stack:n+"\nSnippet failed to load ["+a+"] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: "+(S&&S.pathname||"_unknown_")+"\nEndpoint: "+i,parsedStack:[]}],r)),l.push(function(e,t,n,a){var i=v(c,"Message"),r=i.data;r.baseType="MessageData";var o=r.baseData;return o.message='AI (Internal): 99 message:"'+("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) ("+n+")").replace(/\"/g,"")+'"',o.properties={endpoint:a},i}(0,0,t,p)),function(e,t){if(JSON){var n=T.fetch;if(n&&!y.useXhr)n(t,{method:N,body:JSON.stringify(e),mode:"cors"});else if(XMLHttpRequest){var a=new XMLHttpRequest;a.open(N,t),a.setRequestHeader("Content-type","application/json"),a.send(JSON.stringify(e))}}}(l,p))}function i(e,t){f||setTimeout(function(){!t&&m.core||a()},500)}var e=function(){var n=l.createElement(k);n.src=h;var e=y[w];return!e&&""!==e||"undefined"==n[w]||(n[w]=e),n.onload=i,n.onerror=a,n.onreadystatechange=function(e,t){"loaded"!==n.readyState&&"complete"!==n.readyState||i(0,t)},n}();y.ld<0?l.getElementsByTagName("head")[0].appendChild(e):setTimeout(function(){l.getElementsByTagName(k)[0].parentNode.appendChild(e)},y.ld||0)}try{m.cookie=l.cookie}catch(p){}function t(e){for(;e.length;)!function(t){m[t]=function(){var e=arguments;g||m.queue.push(function(){m[t].apply(m,e)})}}(e.pop())}var n="track",r="TrackPage",o="TrackEvent";t([n+"Event",n+"PageView",n+"Exception",n+"Trace",n+"DependencyData",n+"Metric",n+"PageViewPerformance","start"+r,"stop"+r,"start"+o,"stop"+o,"addTelemetryInitializer","setAuthenticatedUserContext","clearAuthenticatedUserContext","flush"]),m.SeverityLevel={Verbose:0,Information:1,Warning:2,Error:3,Critical:4};var s=(d.extensionConfig||{}).ApplicationInsightsAnalytics||{};if(!0!==d[I]&&!0!==s[I]){var c="onerror";t(["_"+c]);var u=T[c];T[c]=function(e,t,n,a,i){var r=u&&u(e,t,n,a,i);return!0!==r&&m["_"+c]({message:e,url:t,lineNumber:n,columnNumber:a,error:i}),r},d.autoExceptionInstrumented=!0}return m}(y.cfg);function a(){y.onInit&&y.onInit(n)}(T[t]=n).queue&&0===n.queue.length?(n.queue.push(a),n.trackPageView({})):a()}(window,document,{ - src: "https://js.monitor.azure.com/scripts/b/ai.2.min.js", // The SDK URL Source - // name: "appInsights", // Global SDK Instance name defaults to "appInsights" when not supplied - // ld: 0, // Defines the load delay (in ms) before attempting to load the sdk. -1 = block page load and add to head. (default) = 0ms load after timeout, - // useXhr: 1, // Use XHR instead of fetch to report failures (if available), - crossOrigin: "anonymous", // When supplied this will add the provided value as the cross origin attribute on the script tag - // onInit: null, // Once the application insights instance has loaded and initialized this callback function will be called with 1 argument -- the sdk instance (DO NOT ADD anything to the sdk.queue -- as they won't get called) - cfg: { // Application Insights Configuration - instrumentationKey:"INSTRUMENTATION_KEY" - }}); - </script> - ``` [!INCLUDE [azure-monitor-log-analytics-rebrand](../../../includes/azure-monitor-instrumentation-key-deprecation.md)] To learn more advanced configurations for monitoring websites, check out the [JavaScript SDK reference article](./javascript.md). |
azure-monitor | Azure Monitor Workspace Private Endpoint | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/essentials/azure-monitor-workspace-private-endpoint.md | Last updated 05/03/2023 Use [private endpoints](../../private-link/private-endpoint-overview.md) for Managed Prometheus and your Azure Monitor workspace to allow clients on a virtual network (VNet) to securely query data over a [Private Link](../../private-link/private-link-overview.md). The private endpoint uses a separate IP address within the VNet address space of your Azure Monitor workspace resource. Network traffic between the clients on the VNet and the workspace resource traverses the VNet and a private link on the Microsoft backbone network, eliminating exposure from the public internet. +> [!NOTE] +> Private Link functionality for Managed Prometheus and the Azure Monitor workspace is currently _unavailable_ in the following regions: Australia Southeast, Canada Central, East Asia, Norway East, South Africa North, UAE North, or West Central US. We expect this functionality to become available by early June 2023. All other regions where Managed Prometheus and the Azure Monitor workspace are available have full support for Private Link. + > [!NOTE] > If you are using Azure Managed Grafana to query your data, please configure a [Managed Private Endpoint](https://aka.ms/ags/mpe) to ensure the queries from Managed Grafana into your Azure Monitor workspace use the Microsoft backbone network without going through the internet. + Using private endpoints for your workspace enables you to: - Secure your workspace by configuring the public access network setting to block all connections on the public query endpoint for the workspace. |
azure-monitor | Metrics Supported | https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/essentials/metrics-supported.md | The Azure Monitor agent replaces the Azure Diagnostics extension and Log Analyti ## Table formatting This latest update adds a new column and reorders the metrics to be alphabetical. The additional information means that the tables might have a horizontal scroll bar at the bottom, depending on the width of your browser window. If you seem to be missing information, use the scroll bar to see the entirety of the table.--## Microsoft.AAD/DomainServices -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|\DirectoryServices(NTDS)\LDAP Searches/sec |Yes |NTDS - LDAP Searches/sec |CountPerSecond |Average |This metric indicates the average number of searches per second for the NTDS object. It is backed by performance counter data from the domain controller, and can be filtered or splitted by role instance. |DataCenter, Tenant, Role, RoleInstance, ScaleUnit | -|\DirectoryServices(NTDS)\LDAP Successful Binds/sec |Yes |NTDS - LDAP Successful Binds/sec |CountPerSecond |Average |This metric indicates the number of LDAP successful binds per second for the NTDS object. It is backed by performance counter data from the domain controller, and can be filtered or splitted by role instance. |DataCenter, Tenant, Role, RoleInstance, ScaleUnit | -|\DNS\Total Query Received/sec |Yes |DNS - Total Query Received/sec |CountPerSecond |Average |This metric indicates the average number of queries received by DNS server in each second. It is backed by performance counter data from the domain controller, and can be filtered or splitted by role instance. |DataCenter, Tenant, Role, RoleInstance, ScaleUnit | -|\DNS\Total Response Sent/sec |Yes |Total Response Sent/sec |CountPerSecond |Average |This metric indicates the average number of reponses sent by DNS server in each second. It is backed by performance counter data from the domain controller, and can be filtered or splitted by role instance. |DataCenter, Tenant, Role, RoleInstance, ScaleUnit | -|\Memory\% Committed Bytes In Use |Yes |% Committed Bytes In Use |Percent |Average |This metric indicates the ratio of Memory\Committed Bytes to the Memory\Commit Limit. Committed memory is the physical memory in use for which space has been reserved in the paging file should it need to be written to disk. The commit limit is determined by the size of the paging file. If the paging file is enlarged, the commit limit increases, and the ratio is reduced. This counter displays the current percentage value only; it is not an average. It is backed by performance counter data from the domain controller, and can be filtered or splitted by role instance. |DataCenter, Tenant, Role, RoleInstance, ScaleUnit | -|\Process(dns)\% Processor Time |Yes |% Processor Time (dns) |Percent |Average |This metric indicates the percentage of elapsed time that all of dns process threads used the processor to execute instructions. An instruction is the basic unit of execution in a computer, a thread is the object that executes instructions, and a process is the object created when a program is run. Code executed to handle some hardware interrupts and trap conditions are included in this count. It is backed by performance counter data from the domain controller, and can be filtered or splitted by role instance. |DataCenter, Tenant, Role, RoleInstance, ScaleUnit | -|\Process(lsass)\% Processor Time |Yes |% Processor Time (lsass) |Percent |Average |This metric indicates the percentage of elapsed time that all of lsass process threads used the processor to execute instructions. An instruction is the basic unit of execution in a computer, a thread is the object that executes instructions, and a process is the object created when a program is run. Code executed to handle some hardware interrupts and trap conditions are included in this count. It is backed by performance counter data from the domain controller, and can be filtered or splitted by role instance. |DataCenter, Tenant, Role, RoleInstance, ScaleUnit | -|\Processor(_Total)\% Processor Time |Yes |Total Processor Time |Percent |Average |This metric indicates the percentage of elapsed time that the processor spends to execute a non-Idle thread. It is calculated by measuring the percentage of time that the processor spends executing the idle thread and then subtracting that value from 100%. (Each processor has an idle thread that consumes cycles when no other threads are ready to run). This counter is the primary indicator of processor activity, and displays the average percentage of busy time observed during the sample interval. It should be noted that the accounting calculation of whether the processor is idle is performed at an internal sampling interval of the system clock (10ms). On todays fast processors, % Processor Time can therefore underestimate the processor utilization as the processor may be spending a lot of time servicing threads between the system clock sampling interval. Workload based timer applications are one example of applications which are more likely to be measured inaccurately as timers are signaled just after the sample is taken. It is backed by performance counter data from the domain controller, and can be filtered or splitted by role instance. |DataCenter, Tenant, Role, RoleInstance, ScaleUnit | -|\Security System-Wide Statistics\Kerberos Authentications |Yes |Kerberos Authentications |CountPerSecond |Average |This metric indicates the number of times that clients use a ticket to authenticate to this computer per second. It is backed by performance counter data from the domain controller, and can be filtered or splitted by role instance. |DataCenter, Tenant, Role, RoleInstance, ScaleUnit | -|\Security System-Wide Statistics\NTLM Authentications |Yes |NTLM Authentications |CountPerSecond |Average |This metric indicates the number of NTLM authentications processed per second for the Active Directory on this domain contrller or for local accounts on this member server. It is backed by performance counter data from the domain controller, and can be filtered or splitted by role instance. |DataCenter, Tenant, Role, RoleInstance, ScaleUnit | --## microsoft.aadiam/azureADMetrics -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|CACompliantDeviceSuccessCount |Yes |CACompliantDeviceSuccessCount |Count |Count |CA comliant device scuccess count for Azure AD |No Dimensions | -|CAManagedDeviceSuccessCount |No |CAManagedDeviceSuccessCount |Count |Count |CA domain join device success count for Azure AD |No Dimensions | -|MFAAttemptCount |No |MFAAttemptCount |Count |Count |MFA attempt count for Azure AD |No Dimensions | -|MFAFailureCount |No |MFAFailureCount |Count |Count |MFA failure count for Azure AD |No Dimensions | -|MFASuccessCount |No |MFASuccessCount |Count |Count |MFA success count for Azure AD |No Dimensions | -|SamlFailureCount |Yes |SamlFailureCount |Count |Count |Saml token failure count for relying party scenario |No Dimensions | -|SamlSuccessCount |Yes |SamlSuccessCount |Count |Count |Saml token scuccess count for relying party scenario |No Dimensions | --## Microsoft.AnalysisServices/servers -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|CleanerCurrentPrice |Yes |Memory: Cleaner Current Price |Count |Average |Current price of memory, $/byte/time, normalized to 1000. |ServerResourceType | -|CleanerMemoryNonshrinkable |Yes |Memory: Cleaner Memory nonshrinkable |Bytes |Average |Amount of memory, in bytes, not subject to purging by the background cleaner. |ServerResourceType | -|CleanerMemoryShrinkable |Yes |Memory: Cleaner Memory shrinkable |Bytes |Average |Amount of memory, in bytes, subject to purging by the background cleaner. |ServerResourceType | -|CommandPoolBusyThreads |Yes |Threads: Command pool busy threads |Count |Average |Number of busy threads in the command thread pool. |ServerResourceType | -|CommandPoolIdleThreads |Yes |Threads: Command pool idle threads |Count |Average |Number of idle threads in the command thread pool. |ServerResourceType | -|CommandPoolJobQueueLength |Yes |Command Pool Job Queue Length |Count |Average |Number of jobs in the queue of the command thread pool. |ServerResourceType | -|CurrentConnections |Yes |Connection: Current connections |Count |Average |Current number of client connections established. |ServerResourceType | -|CurrentUserSessions |Yes |Current User Sessions |Count |Average |Current number of user sessions established. |ServerResourceType | -|LongParsingBusyThreads |Yes |Threads: Long parsing busy threads |Count |Average |Number of busy threads in the long parsing thread pool. |ServerResourceType | -|LongParsingIdleThreads |Yes |Threads: Long parsing idle threads |Count |Average |Number of idle threads in the long parsing thread pool. |ServerResourceType | -|LongParsingJobQueueLength |Yes |Threads: Long parsing job queue length |Count |Average |Number of jobs in the queue of the long parsing thread pool. |ServerResourceType | -|mashup_engine_memory_metric |Yes |M Engine Memory |Bytes |Average |Memory usage by mashup engine processes |ServerResourceType | -|mashup_engine_private_bytes_metric |Yes |M Engine Private Bytes |Bytes |Average |Private bytes usage by mashup engine processes. |ServerResourceType | -|mashup_engine_qpu_metric |Yes |M Engine QPU |Count |Average |QPU usage by mashup engine processes |ServerResourceType | -|mashup_engine_virtual_bytes_metric |Yes |M Engine Virtual Bytes |Bytes |Average |Virtual bytes usage by mashup engine processes. |ServerResourceType | -|memory_metric |Yes |Memory |Bytes |Average |Memory. Range 0-25 GB for S1, 0-50 GB for S2 and 0-100 GB for S4 |ServerResourceType | -|memory_thrashing_metric |Yes |Memory Thrashing |Percent |Average |Average memory thrashing. |ServerResourceType | -|MemoryLimitHard |Yes |Memory: Memory Limit Hard |Bytes |Average |Hard memory limit, from configuration file. |ServerResourceType | -|MemoryLimitHigh |Yes |Memory: Memory Limit High |Bytes |Average |High memory limit, from configuration file. |ServerResourceType | -|MemoryLimitLow |Yes |Memory: Memory Limit Low |Bytes |Average |Low memory limit, from configuration file. |ServerResourceType | -|MemoryLimitVertiPaq |Yes |Memory: Memory Limit VertiPaq |Bytes |Average |In-memory limit, from configuration file. |ServerResourceType | -|MemoryUsage |Yes |Memory: Memory Usage |Bytes |Average |Memory usage of the server process as used in calculating cleaner memory price. Equal to counter Process\PrivateBytes plus the size of memory-mapped data, ignoring any memory which was mapped or allocated by the xVelocity in-memory analytics engine (VertiPaq) in excess of the xVelocity engine Memory Limit. |ServerResourceType | -|private_bytes_metric |Yes |Private Bytes |Bytes |Average |Private bytes. |ServerResourceType | -|ProcessingPoolBusyIOJobThreads |Yes |Threads: Processing pool busy I/O job threads |Count |Average |Number of threads running I/O jobs in the processing thread pool. |ServerResourceType | -|ProcessingPoolBusyNonIOThreads |Yes |Threads: Processing pool busy non-I/O threads |Count |Average |Number of threads running non-I/O jobs in the processing thread pool. |ServerResourceType | -|ProcessingPoolIdleIOJobThreads |Yes |Threads: Processing pool idle I/O job threads |Count |Average |Number of idle threads for I/O jobs in the processing thread pool. |ServerResourceType | -|ProcessingPoolIdleNonIOThreads |Yes |Threads: Processing pool idle non-I/O threads |Count |Average |Number of idle threads in the processing thread pool dedicated to non-I/O jobs. |ServerResourceType | -|ProcessingPoolIOJobQueueLength |Yes |Threads: Processing pool I/O job queue length |Count |Average |Number of I/O jobs in the queue of the processing thread pool. |ServerResourceType | -|ProcessingPoolJobQueueLength |Yes |Processing Pool Job Queue Length |Count |Average |Number of non-I/O jobs in the queue of the processing thread pool. |ServerResourceType | -|qpu_metric |Yes |QPU |Count |Average |QPU. Range 0-100 for S1, 0-200 for S2 and 0-400 for S4 |ServerResourceType | -|QueryPoolBusyThreads |Yes |Query Pool Busy Threads |Count |Average |Number of busy threads in the query thread pool. |ServerResourceType | -|QueryPoolIdleThreads |Yes |Threads: Query pool idle threads |Count |Average |Number of idle threads for I/O jobs in the processing thread pool. |ServerResourceType | -|QueryPoolJobQueueLength |Yes |Threads: Query pool job queue lengt |Count |Average |Number of jobs in the queue of the query thread pool. |ServerResourceType | -|Quota |Yes |Memory: Quota |Bytes |Average |Current memory quota, in bytes. Memory quota is also known as a memory grant or memory reservation. |ServerResourceType | -|QuotaBlocked |Yes |Memory: Quota Blocked |Count |Average |Current number of quota requests that are blocked until other memory quotas are freed. |ServerResourceType | -|RowsConvertedPerSec |Yes |Processing: Rows converted per sec |CountPerSecond |Average |Rate of rows converted during processing. |ServerResourceType | -|RowsReadPerSec |Yes |Processing: Rows read per sec |CountPerSecond |Average |Rate of rows read from all relational databases. |ServerResourceType | -|RowsWrittenPerSec |Yes |Processing: Rows written per sec |CountPerSecond |Average |Rate of rows written during processing. |ServerResourceType | -|ShortParsingBusyThreads |Yes |Threads: Short parsing busy threads |Count |Average |Number of busy threads in the short parsing thread pool. |ServerResourceType | -|ShortParsingIdleThreads |Yes |Threads: Short parsing idle threads |Count |Average |Number of idle threads in the short parsing thread pool. |ServerResourceType | -|ShortParsingJobQueueLength |Yes |Threads: Short parsing job queue length |Count |Average |Number of jobs in the queue of the short parsing thread pool. |ServerResourceType | -|SuccessfullConnectionsPerSec |Yes |Successful Connections Per Sec |CountPerSecond |Average |Rate of successful connection completions. |ServerResourceType | -|TotalConnectionFailures |Yes |Total Connection Failures |Count |Average |Total failed connection attempts. |ServerResourceType | -|TotalConnectionRequests |Yes |Total Connection Requests |Count |Average |Total connection requests. These are arrivals. |ServerResourceType | -|VertiPaqNonpaged |Yes |Memory: VertiPaq Nonpaged |Bytes |Average |Bytes of memory locked in the working set for use by the in-memory engine. |ServerResourceType | -|VertiPaqPaged |Yes |Memory: VertiPaq Paged |Bytes |Average |Bytes of paged memory in use for in-memory data. |ServerResourceType | -|virtual_bytes_metric |Yes |Virtual Bytes |Bytes |Average |Virtual bytes. |ServerResourceType | --## Microsoft.ApiManagement/service -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BackendDuration |Yes |Duration of Backend Requests |MilliSeconds |Average |Duration of Backend Requests in milliseconds |Location, Hostname | -|Capacity |Yes |Capacity |Percent |Average |Utilization metric for ApiManagement service. Note: For skus other than Premium, 'Max' aggregation will show the value as 0. |Location | -|ConnectionAttempts |Yes |WebSocket Connection Attempts (Preview) |Count |Total |Count of WebSocket connection attempts based on selected source and destination |Location, Source, Destination, State | -|Duration |Yes |Overall Duration of Gateway Requests |MilliSeconds |Average |Overall Duration of Gateway Requests in milliseconds |Location, Hostname | -|EventHubDroppedEvents |Yes |Dropped EventHub Events |Count |Total |Number of events skipped because of queue size limit reached |Location | -|EventHubRejectedEvents |Yes |Rejected EventHub Events |Count |Total |Number of rejected EventHub events (wrong configuration or unauthorized) |Location | -|EventHubSuccessfulEvents |Yes |Successful EventHub Events |Count |Total |Number of successful EventHub events |Location | -|EventHubThrottledEvents |Yes |Throttled EventHub Events |Count |Total |Number of throttled EventHub events |Location | -|EventHubTimedoutEvents |Yes |Timed Out EventHub Events |Count |Total |Number of timed out EventHub events |Location | -|EventHubTotalBytesSent |Yes |Size of EventHub Events |Bytes |Total |Total size of EventHub events in bytes |Location | -|EventHubTotalEvents |Yes |Total EventHub Events |Count |Total |Number of events sent to EventHub |Location | -|EventHubTotalFailedEvents |Yes |Failed EventHub Events |Count |Total |Number of failed EventHub events |Location | -|FailedRequests |Yes |Failed Gateway Requests (Deprecated) |Count |Total |Number of failures in gateway requests - Use multi-dimension request metric with GatewayResponseCodeCategory dimension instead |Location, Hostname | -|NetworkConnectivity |Yes |Network Connectivity Status of Resources (Preview) |Count |Average |Network Connectivity status of dependent resource types from API Management service |Location, ResourceType | -|OtherRequests |Yes |Other Gateway Requests (Deprecated) |Count |Total |Number of other gateway requests - Use multi-dimension request metric with GatewayResponseCodeCategory dimension instead |Location, Hostname | -|Requests |Yes |Requests |Count |Total |Gateway request metrics with multiple dimensions |Location, Hostname, LastErrorReason, BackendResponseCode, GatewayResponseCode, BackendResponseCodeCategory, GatewayResponseCodeCategory | -|SuccessfulRequests |Yes |Successful Gateway Requests (Deprecated) |Count |Total |Number of successful gateway requests - Use multi-dimension request metric with GatewayResponseCodeCategory dimension instead |Location, Hostname | -|TotalRequests |Yes |Total Gateway Requests (Deprecated) |Count |Total |Number of gateway requests - Use multi-dimension request metric with GatewayResponseCodeCategory dimension instead |Location, Hostname | -|UnauthorizedRequests |Yes |Unauthorized Gateway Requests (Deprecated) |Count |Total |Number of unauthorized gateway requests - Use multi-dimension request metric with GatewayResponseCodeCategory dimension instead |Location, Hostname | -|WebSocketMessages |Yes |WebSocket Messages (Preview) |Count |Total |Count of WebSocket messages based on selected source and destination |Location, Source, Destination | --## Microsoft.App/containerapps -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|CoresQuotaUsed |Yes |Reserved Cores |Count |Maximum |Number of reserved cores for container app revisions |revisionName | -|Replicas |Yes |Replica Count |Count |Maximum |Number of replicas count of container app |revisionName | -|Requests |Yes |Requests |Count |Total |Requests processed |revisionName, podName, statusCodeCategory, statusCode | -|RestartCount |Yes |Replica Restart Count |Count |Maximum |Restart count of container app replicas |revisionName, podName | -|RxBytes |Yes |Network In Bytes |Bytes |Total |Network received bytes |revisionName, podName | -|TotalCoresQuotaUsed |Yes |Total Reserved Cores |Count |Average |Number of total reserved cores for the container app |No Dimensions | -|TxBytes |Yes |Network Out Bytes |Bytes |Total |Network transmitted bytes |revisionName, podName | -|UsageNanoCores |Yes |CPU Usage |NanoCores |Average |CPU consumed by the container app, in nano cores. 1,000,000,000 nano cores = 1 core |revisionName, podName | -|WorkingSetBytes |Yes |Memory Working Set Bytes |Bytes |Average |Container App working set memory used in bytes. |revisionName, podName | --## Microsoft.App/managedEnvironments -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|EnvCoresQuotaLimit |Yes |Cores Quota Limit |Count |Average |The cores quota limit of managed environment |No Dimensions | -|EnvCoresQuotaUtilization |Yes |Percentage Cores Used Out Of Limit |Percent |Average |The cores quota utilization of managed environment |No Dimensions | --## Microsoft.AppConfiguration/configurationStores -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|DailyStorageUsage |Yes |DailyStorageUsage |Percent |Maximum |Total storage usage of the store in percentage. Updated at minimum every 24 hours. |No Dimensions | -|HttpIncomingRequestCount |Yes |HttpIncomingRequestCount |Count |Total |Total number of incoming http requests. |StatusCode, Authentication, Endpoint | -|HttpIncomingRequestDuration |Yes |HttpIncomingRequestDuration |Count |Average |Latency on an http request. |StatusCode, Authentication, Endpoint | -|ThrottledHttpRequestCount |Yes |ThrottledHttpRequestCount |Count |Total |Throttled http requests. |Endpoint | --## Microsoft.AppPlatform/Spring -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|active-timer-count |Yes |active-timer-count |Count |Average |Number of timers that are currently active |Deployment, AppName, Pod | -|alloc-rate |Yes |alloc-rate |Bytes |Average |Number of bytes allocated in the managed heap |Deployment, AppName, Pod | -|AppCpuUsage |Yes |App CPU Usage (Deprecated) |Percent |Average |The recent CPU usage for the app. This metric is being deprecated. Please use "App CPU Usage" with metric id "PodCpuUsage". |Deployment, AppName, Pod | -|assembly-count |Yes |assembly-count |Count |Average |Number of Assemblies Loaded |Deployment, AppName, Pod | -|cpu-usage |Yes |cpu-usage |Percent |Average |% time the process has utilized the CPU |Deployment, AppName, Pod | -|current-requests |Yes |current-requests |Count |Average |Total number of requests in processing in the lifetime of the process |Deployment, AppName, Pod | -|exception-count |Yes |exception-count |Count |Total |Number of Exceptions |Deployment, AppName, Pod | -|failed-requests |Yes |failed-requests |Count |Average |Total number of failed requests in the lifetime of the process |Deployment, AppName, Pod | -|GatewayHttpServerRequestsMilliSecondsMax |Yes |Max time of requests |Milliseconds |Maximum |The max time of requests |Pod, httpStatusCode, outcome, httpMethod | -|GatewayHttpServerRequestsMilliSecondsSum |Yes |Total time of requests |Milliseconds |Total |The total time of requests |Pod, httpStatusCode, outcome, httpMethod | -|GatewayHttpServerRequestsSecondsCount |Yes |Request count |Count |Total |The number of requests |Pod, httpStatusCode, outcome, httpMethod | -|GatewayJvmGcLiveDataSizeBytes |Yes |jvm.gc.live.data.size |Bytes |Average |Size of old generation memory pool after a full GC |Pod | -|GatewayJvmGcMaxDataSizeBytes |Yes |jvm.gc.max.data.size |Bytes |Maximum |Max size of old generation memory pool |Pod | -|GatewayJvmGcMemoryAllocatedBytesTotal |Yes |jvm.gc.memory.allocated |Bytes |Maximum |Incremented for an increase in the size of the young generation memory pool after one GC to before the next |Pod | -|GatewayJvmGcMemoryPromotedBytesTotal |Yes |jvm.gc.memory.promoted |Bytes |Maximum |Count of positive increases in the size of the old generation memory pool before GC to after GC |Pod | -|GatewayJvmGcPauseSecondsCount |Yes |jvm.gc.pause.total.count |Count |Total |GC Pause Count |Pod | -|GatewayJvmGcPauseSecondsMax |Yes |jvm.gc.pause.max.time |Seconds |Maximum |GC Pause Max Time |Pod | -|GatewayJvmGcPauseSecondsSum |Yes |jvm.gc.pause.total.time |Seconds |Total |GC Pause Total Time |Pod | -|GatewayJvmMemoryCommittedBytes |Yes |jvm.memory.committed |Bytes |Average |Memory assigned to JVM in bytes |Pod | -|GatewayJvmMemoryUsedBytes |Yes |jvm.memory.used |Bytes |Average |Memory Used in bytes |Pod | -|GatewayProcessCpuUsage |Yes |process.cpu.usage |Percent |Average |The recent CPU usage for the JVM process |Pod | -|GatewayRatelimitThrottledCount |Yes |Throttled requests count |Count |Total |The count of the throttled requests |Pod | -|GatewaySystemCpuUsage |Yes |system.cpu.usage |Percent |Average |The recent CPU usage for the whole system |Pod | -|gc-heap-size |Yes |gc-heap-size |Count |Average |Total heap size reported by the GC (MB) |Deployment, AppName, Pod | -|gen-0-gc-count |Yes |gen-0-gc-count |Count |Average |Number of Gen 0 GCs |Deployment, AppName, Pod | -|gen-0-size |Yes |gen-0-size |Bytes |Average |Gen 0 Heap Size |Deployment, AppName, Pod | -|gen-1-gc-count |Yes |gen-1-gc-count |Count |Average |Number of Gen 1 GCs |Deployment, AppName, Pod | -|gen-1-size |Yes |gen-1-size |Bytes |Average |Gen 1 Heap Size |Deployment, AppName, Pod | -|gen-2-gc-count |Yes |gen-2-gc-count |Count |Average |Number of Gen 2 GCs |Deployment, AppName, Pod | -|gen-2-size |Yes |gen-2-size |Bytes |Average |Gen 2 Heap Size |Deployment, AppName, Pod | -|IngressBytesReceived |Yes |Bytes Received |Bytes |Average |Count of bytes received by Azure Spring Apps from the clients |Hostname, HttpStatus | -|IngressBytesReceivedRate |Yes |Throughput In (bytes/s) |BytesPerSecond |Average |Bytes received per second by Azure Spring Apps from the clients |Hostname, HttpStatus | -|IngressBytesSent |Yes |Bytes Sent |Bytes |Average |Count of bytes sent by Azure Spring Apps to the clients |Hostname, HttpStatus | -|IngressBytesSentRate |Yes |Throughput Out (bytes/s) |BytesPerSecond |Average |Bytes sent per second by Azure Spring Apps to the clients |Hostname, HttpStatus | -|IngressFailedRequests |Yes |Failed Requests |Count |Average |Count of failed requests by Azure Spring Apps from the clients |Hostname, HttpStatus | -|IngressRequests |Yes |Requests |Count |Average |Count of requests by Azure Spring Apps from the clients |Hostname, HttpStatus | -|IngressResponseStatus |Yes |Response Status |Count |Average |HTTP response status returned by Azure Spring Apps. The response status code distribution can be further categorized to show responses in 2xx, 3xx, 4xx, and 5xx categories |Hostname, HttpStatus | -|IngressResponseTime |Yes |Response Time |Seconds |Average |Http response time return by Azure Spring Apps |Hostname, HttpStatus | -|jvm.gc.live.data.size |Yes |jvm.gc.live.data.size |Bytes |Average |Size of old generation memory pool after a full GC |Deployment, AppName, Pod | -|jvm.gc.max.data.size |Yes |jvm.gc.max.data.size |Bytes |Average |Max size of old generation memory pool |Deployment, AppName, Pod | -|jvm.gc.memory.allocated |Yes |jvm.gc.memory.allocated |Bytes |Maximum |Incremented for an increase in the size of the young generation memory pool after one GC to before the next |Deployment, AppName, Pod | -|jvm.gc.memory.promoted |Yes |jvm.gc.memory.promoted |Bytes |Maximum |Count of positive increases in the size of the old generation memory pool before GC to after GC |Deployment, AppName, Pod | -|jvm.gc.pause.total.count |Yes |jvm.gc.pause.total.count |Count |Total |GC Pause Count |Deployment, AppName, Pod | -|jvm.gc.pause.total.time |Yes |jvm.gc.pause.total.time |Milliseconds |Total |GC Pause Total Time |Deployment, AppName, Pod | -|jvm.memory.committed |Yes |jvm.memory.committed |Bytes |Average |Memory assigned to JVM in bytes |Deployment, AppName, Pod | -|jvm.memory.max |Yes |jvm.memory.max |Bytes |Maximum |The maximum amount of memory in bytes that can be used for memory management |Deployment, AppName, Pod | -|jvm.memory.used |Yes |jvm.memory.used |Bytes |Average |App Memory Used in bytes |Deployment, AppName, Pod | -|loh-size |Yes |loh-size |Bytes |Average |LOH Heap Size |Deployment, AppName, Pod | -|monitor-lock-contention-count |Yes |monitor-lock-contention-count |Count |Average |Number of times there were contention when trying to take the monitor lock |Deployment, AppName, Pod | -|PodCpuUsage |Yes |App CPU Usage |Percent |Average |The recent CPU usage for the app |Deployment, AppName, Pod | -|PodMemoryUsage |Yes |App Memory Usage |Percent |Average |The recent Memory usage for the app |Deployment, AppName, Pod | -|PodNetworkIn |Yes |App Network In |Bytes |Average |Cumulative count of bytes received in the app |Deployment, AppName, Pod | -|PodNetworkOut |Yes |App Network Out |Bytes |Average |Cumulative count of bytes sent from the app |Deployment, AppName, Pod | -|process.cpu.usage |Yes |process.cpu.usage |Percent |Average |The recent CPU usage for the JVM process |Deployment, AppName, Pod | -|Requests |Yes |Requests |Count |Total |Requests processed |containerAppName, podName, statusCodeCategory, statusCode | -|requests-per-second |Yes |requests-rate |Count |Average |Request rate |Deployment, AppName, Pod | -|RestartCount |Yes |Restart Count |Count |Maximum |Restart count of Spring App |containerAppName, podName | -|RxBytes |Yes |Network In Bytes |Bytes |Total |Network received bytes |containerAppName, podName | -|system.cpu.usage |Yes |system.cpu.usage |Percent |Average |The recent CPU usage for the whole system |Deployment, AppName, Pod | -|threadpool-completed-items-count |Yes |threadpool-completed-items-count |Count |Average |ThreadPool Completed Work Items Count |Deployment, AppName, Pod | -|threadpool-queue-length |Yes |threadpool-queue-length |Count |Average |ThreadPool Work Items Queue Length |Deployment, AppName, Pod | -|threadpool-thread-count |Yes |threadpool-thread-count |Count |Average |Number of ThreadPool Threads |Deployment, AppName, Pod | -|time-in-gc |Yes |time-in-gc |Percent |Average |% time in GC since the last GC |Deployment, AppName, Pod | -|tomcat.global.error |Yes |tomcat.global.error |Count |Total |Tomcat Global Error |Deployment, AppName, Pod | -|tomcat.global.received |Yes |tomcat.global.received |Bytes |Total |Tomcat Total Received Bytes |Deployment, AppName, Pod | -|tomcat.global.request.avg.time |Yes |tomcat.global.request.avg.time |Milliseconds |Average |Tomcat Request Average Time |Deployment, AppName, Pod | -|tomcat.global.request.max |Yes |tomcat.global.request.max |Milliseconds |Maximum |Tomcat Request Max Time |Deployment, AppName, Pod | -|tomcat.global.request.total.count |Yes |tomcat.global.request.total.count |Count |Total |Tomcat Request Total Count |Deployment, AppName, Pod | -|tomcat.global.request.total.time |Yes |tomcat.global.request.total.time |Milliseconds |Total |Tomcat Request Total Time |Deployment, AppName, Pod | -|tomcat.global.sent |Yes |tomcat.global.sent |Bytes |Total |Tomcat Total Sent Bytes |Deployment, AppName, Pod | -|tomcat.sessions.active.current |Yes |tomcat.sessions.active.current |Count |Total |Tomcat Session Active Count |Deployment, AppName, Pod | -|tomcat.sessions.active.max |Yes |tomcat.sessions.active.max |Count |Total |Tomcat Session Max Active Count |Deployment, AppName, Pod | -|tomcat.sessions.alive.max |Yes |tomcat.sessions.alive.max |Milliseconds |Maximum |Tomcat Session Max Alive Time |Deployment, AppName, Pod | -|tomcat.sessions.created |Yes |tomcat.sessions.created |Count |Total |Tomcat Session Created Count |Deployment, AppName, Pod | -|tomcat.sessions.expired |Yes |tomcat.sessions.expired |Count |Total |Tomcat Session Expired Count |Deployment, AppName, Pod | -|tomcat.sessions.rejected |Yes |tomcat.sessions.rejected |Count |Total |Tomcat Session Rejected Count |Deployment, AppName, Pod | -|tomcat.threads.config.max |Yes |tomcat.threads.config.max |Count |Total |Tomcat Config Max Thread Count |Deployment, AppName, Pod | -|tomcat.threads.current |Yes |tomcat.threads.current |Count |Total |Tomcat Current Thread Count |Deployment, AppName, Pod | -|total-requests |Yes |total-requests |Count |Average |Total number of requests in the lifetime of the process |Deployment, AppName, Pod | -|TxBytes |Yes |Network Out Bytes |Bytes |Total |Network transmitted bytes |containerAppName, podName | -|UsageNanoCores |Yes |CPU Usage |NanoCores |Average |CPU consumed by Spring App, in nano cores. 1,000,000,000 nano cores = 1 core |containerAppName, podName | -|working-set |Yes |working-set |Count |Average |Amount of working set used by the process (MB) |Deployment, AppName, Pod | -|WorkingSetBytes |Yes |Memory Working Set Bytes |Bytes |Average |Spring App working set memory used in bytes. |containerAppName, podName | --## Microsoft.Automation/automationAccounts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|HybridWorkerPing |Yes |Hybrid Worker Ping |Count |Count |The number of pings from the hybrid worker |HybridWorkerGroup, HybridWorker, HybridWorkerVersion | -|TotalJob |Yes |Total Jobs |Count |Total |The total number of jobs |Runbook, Status | -|TotalUpdateDeploymentMachineRuns |Yes |Total Update Deployment Machine Runs |Count |Total |Total software update deployment machine runs in a software update deployment run |Status, TargetComputer, SoftwareUpdateConfigurationName, SoftwareUpdateConfigurationRunId | -|TotalUpdateDeploymentRuns |Yes |Total Update Deployment Runs |Count |Total |Total software update deployment runs |Status, SoftwareUpdateConfigurationName | --## microsoft.avs/privateClouds -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|CapacityLatest |Yes |Datastore Disk Total Capacity |Bytes |Average |The total capacity of disk in the datastore |dsname | -|DiskUsedPercentage |Yes | Percentage Datastore Disk Used |Percent |Average |Percent of available disk used in Datastore |dsname | -|EffectiveCpuAverage |Yes |Percentage CPU |Percent |Average |Percentage of Used CPU resources in Cluster |clustername | -|EffectiveMemAverage |Yes |Average Effective Memory |Bytes |Average |Total available amount of machine memory in cluster |clustername | -|OverheadAverage |Yes |Average Memory Overhead |Bytes |Average |Host physical memory consumed by the virtualization infrastructure |clustername | -|TotalMbAverage |Yes |Average Total Memory |Bytes |Average |Total memory in cluster |clustername | -|UsageAverage |Yes |Average Memory Usage |Percent |Average |Memory usage as percentage of total configured or available memory |clustername | -|UsedLatest |Yes |Datastore Disk Used |Bytes |Average |The total amount of disk used in the datastore |dsname | --## microsoft.azuresphere/catalogs -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|DeviceAttestationCount |Yes |Device Attestation Requests |Count |Count |Count of all the requests sent by an Azure Sphere device for authentication and attestation. |DeviceId, CatalogId, StatusCodeClass | -|DeviceErrorCount |Yes |Device Errors |Count |Count |Count of all the errors encountered by an Azure Sphere device. |DeviceId, CatalogId, ErrorCategory, ErrorClass, ErrorType | --## Microsoft.Batch/batchaccounts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|CoreCount |No |Dedicated Core Count |Count |Total |Total number of dedicated cores in the batch account |No Dimensions | -|CreatingNodeCount |No |Creating Node Count |Count |Total |Number of nodes being created |No Dimensions | -|IdleNodeCount |No |Idle Node Count |Count |Total |Number of idle nodes |No Dimensions | -|JobDeleteCompleteEvent |Yes |Job Delete Complete Events |Count |Total |Total number of jobs that have been successfully deleted. |jobId | -|JobDeleteStartEvent |Yes |Job Delete Start Events |Count |Total |Total number of jobs that have been requested to be deleted. |jobId | -|JobDisableCompleteEvent |Yes |Job Disable Complete Events |Count |Total |Total number of jobs that have been successfully disabled. |jobId | -|JobDisableStartEvent |Yes |Job Disable Start Events |Count |Total |Total number of jobs that have been requested to be disabled. |jobId | -|JobStartEvent |Yes |Job Start Events |Count |Total |Total number of jobs that have been successfully started. |jobId | -|JobTerminateCompleteEvent |Yes |Job Terminate Complete Events |Count |Total |Total number of jobs that have been successfully terminated. |jobId | -|JobTerminateStartEvent |Yes |Job Terminate Start Events |Count |Total |Total number of jobs that have been requested to be terminated. |jobId | -|LeavingPoolNodeCount |No |Leaving Pool Node Count |Count |Total |Number of nodes leaving the Pool |No Dimensions | -|LowPriorityCoreCount |No |LowPriority Core Count |Count |Total |Total number of low-priority cores in the batch account |No Dimensions | -|OfflineNodeCount |No |Offline Node Count |Count |Total |Number of offline nodes |No Dimensions | -|PoolCreateEvent |Yes |Pool Create Events |Count |Total |Total number of pools that have been created |poolId | -|PoolDeleteCompleteEvent |Yes |Pool Delete Complete Events |Count |Total |Total number of pool deletes that have completed |poolId | -|PoolDeleteStartEvent |Yes |Pool Delete Start Events |Count |Total |Total number of pool deletes that have started |poolId | -|PoolResizeCompleteEvent |Yes |Pool Resize Complete Events |Count |Total |Total number of pool resizes that have completed |poolId | -|PoolResizeStartEvent |Yes |Pool Resize Start Events |Count |Total |Total number of pool resizes that have started |poolId | -|PreemptedNodeCount |No |Preempted Node Count |Count |Total |Number of preempted nodes |No Dimensions | -|RebootingNodeCount |No |Rebooting Node Count |Count |Total |Number of rebooting nodes |No Dimensions | -|ReimagingNodeCount |No |Reimaging Node Count |Count |Total |Number of reimaging nodes |No Dimensions | -|RunningNodeCount |No |Running Node Count |Count |Total |Number of running nodes |No Dimensions | -|StartingNodeCount |No |Starting Node Count |Count |Total |Number of nodes starting |No Dimensions | -|StartTaskFailedNodeCount |No |Start Task Failed Node Count |Count |Total |Number of nodes where the Start Task has failed |No Dimensions | -|TaskCompleteEvent |Yes |Task Complete Events |Count |Total |Total number of tasks that have completed |poolId, jobId | -|TaskFailEvent |Yes |Task Fail Events |Count |Total |Total number of tasks that have completed in a failed state |poolId, jobId | -|TaskStartEvent |Yes |Task Start Events |Count |Total |Total number of tasks that have started |poolId, jobId | -|TotalLowPriorityNodeCount |No |Low-Priority Node Count |Count |Total |Total number of low-priority nodes in the batch account |No Dimensions | -|TotalNodeCount |No |Dedicated Node Count |Count |Total |Total number of dedicated nodes in the batch account |No Dimensions | -|UnusableNodeCount |No |Unusable Node Count |Count |Total |Number of unusable nodes |No Dimensions | -|WaitingForStartTaskNodeCount |No |Waiting For Start Task Node Count |Count |Total |Number of nodes waiting for the Start Task to complete |No Dimensions | --## microsoft.bing/accounts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BlockedCalls |Yes |Blocked Calls |Count |Total |Number of calls that exceeded the rate or quota limit |ApiName, ServingRegion, StatusCode | -|ClientErrors |Yes |Client Errors |Count |Total |Number of calls with any client error (HTTP status code 4xx) |ApiName, ServingRegion, StatusCode | -|DataIn |Yes |Data In |Bytes |Total |Incoming request Content-Length in bytes |ApiName, ServingRegion, StatusCode | -|DataOut |Yes |Data Out |Bytes |Total |Outgoing response Content-Length in bytes |ApiName, ServingRegion, StatusCode | -|Latency |Yes |Latency |Milliseconds |Average |Latency in milliseconds |ApiName, ServingRegion, StatusCode | -|ServerErrors |Yes |Server Errors |Count |Total |Number of calls with any server error (HTTP status code 5xx) |ApiName, ServingRegion, StatusCode | -|SuccessfulCalls |Yes |Successful Calls |Count |Total |Number of successful calls (HTTP status code 2xx) |ApiName, ServingRegion, StatusCode | -|TotalCalls |Yes |Total Calls |Count |Total |Total number of calls |ApiName, ServingRegion, StatusCode | -|TotalErrors |Yes |Total Errors |Count |Total |Number of calls with any error (HTTP status code 4xx or 5xx) |ApiName, ServingRegion, StatusCode | --## microsoft.botservice/botservices -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|RequestLatency |Yes |Request Latency |Milliseconds |Total |Time taken by the server to process the request |Operation, Authentication, Protocol, DataCenter | -|RequestsTraffic |Yes |Requests Traffic |Percent |Count |Number of Requests Made |Operation, Authentication, Protocol, StatusCode, StatusCodeClass, DataCenter | --## Microsoft.BotService/botServices/channels -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|RequestLatency |Yes |Requests Latencies |Milliseconds |Average |How long it takes to get request response |Operation, Authentication, Protocol, ResourceId, Region | -|RequestsTraffic |Yes |Requests Traffic |Count |Average |Number of requests within a given period of time |Operation, Authentication, Protocol, ResourceId, Region, StatusCode, StatusCodeClass, StatusText | --## Microsoft.BotService/botServices/connections -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|RequestLatency |Yes |Requests Latencies |Milliseconds |Average |How long it takes to get request response |Operation, Authentication, Protocol, ResourceId, Region | -|RequestsTraffic |Yes |Requests Traffic |Count |Average |Number of requests within a given period of time |Operation, Authentication, Protocol, ResourceId, Region, StatusCode, StatusCodeClass, StatusText | --## Microsoft.BotService/checknameavailability -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|RequestLatency |Yes |Requests Latencies |Milliseconds |Average |How long it takes to get request response |Operation, Authentication, Protocol, ResourceId, Region | -|RequestsTraffic |Yes |Requests Traffic |Count |Average |Number of requests within a given period of time |Operation, Authentication, Protocol, ResourceId, Region, StatusCode, StatusCodeClass, StatusText | --## Microsoft.BotService/hostsettings -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|RequestLatency |Yes |Requests Latencies |Milliseconds |Average |How long it takes to get request response |Operation, Authentication, Protocol, ResourceId, Region | -|RequestsTraffic |Yes |Requests Traffic |Count |Average |Number of requests within a given period of time |Operation, Authentication, Protocol, ResourceId, Region, StatusCode, StatusCodeClass, StatusText | --## Microsoft.BotService/listauthserviceproviders -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|RequestLatency |Yes |Requests Latencies |Milliseconds |Average |How long it takes to get request response |Operation, Authentication, Protocol, ResourceId, Region | -|RequestsTraffic |Yes |Requests Traffic |Count |Average |Number of requests within a given period of time |Operation, Authentication, Protocol, ResourceId, Region, StatusCode, StatusCodeClass, StatusText | --## Microsoft.BotService/listqnamakerendpointkeys -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|RequestLatency |Yes |Requests Latencies |Milliseconds |Average |How long it takes to get request response |Operation, Authentication, Protocol, ResourceId, Region | -|RequestsTraffic |Yes |Requests Traffic |Count |Average |Number of requests within a given period of time |Operation, Authentication, Protocol, ResourceId, Region, StatusCode, StatusCodeClass, StatusText | --## Microsoft.Cache/redis -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|allcachehits |Yes |Cache Hits (Instance Based) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allcachemisses |Yes |Cache Misses (Instance Based) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allcacheRead |Yes |Cache Read (Instance Based) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allcacheWrite |Yes |Cache Write (Instance Based) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allconnectedclients |Yes |Connected Clients (Instance Based) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allConnectionsClosedPerSecond |Yes |Connections Closed Per Second (Instance Based) |CountPerSecond |Maximum |The number of instantaneous connections closed per second on the cache via port 6379 or 6380 (SSL). For more details, see https://aka.ms/redis/metrics. |ShardId, Primary, Ssl | -|allConnectionsCreatedPerSecond |Yes |Connections Created Per Second (Instance Based) |CountPerSecond |Maximum |The number of instantaneous connections created per second on the cache via port 6379 or 6380 (SSL). For more details, see https://aka.ms/redis/metrics. |ShardId, Primary, Ssl | -|allevictedkeys |Yes |Evicted Keys (Instance Based) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allexpiredkeys |Yes |Expired Keys (Instance Based) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allgetcommands |Yes |Gets (Instance Based) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|alloperationsPerSecond |Yes |Operations Per Second (Instance Based) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allpercentprocessortime |Yes |CPU (Instance Based) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allserverLoad |Yes |Server Load (Instance Based) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allsetcommands |Yes |Sets (Instance Based) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|alltotalcommandsprocessed |Yes |Total Operations (Instance Based) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|alltotalkeys |Yes |Total Keys (Instance Based) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allusedmemory |Yes |Used Memory (Instance Based) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allusedmemorypercentage |Yes |Used Memory Percentage (Instance Based) |Percent |Maximum |The percentage of cache memory used for key/value pairs. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|allusedmemoryRss |Yes |Used Memory RSS (Instance Based) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |ShardId, Port, Primary | -|cachehits |Yes |Cache Hits |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |ShardId | -|cachehits0 |Yes |Cache Hits (Shard 0) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachehits1 |Yes |Cache Hits (Shard 1) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachehits2 |Yes |Cache Hits (Shard 2) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachehits3 |Yes |Cache Hits (Shard 3) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachehits4 |Yes |Cache Hits (Shard 4) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachehits5 |Yes |Cache Hits (Shard 5) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachehits6 |Yes |Cache Hits (Shard 6) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachehits7 |Yes |Cache Hits (Shard 7) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachehits8 |Yes |Cache Hits (Shard 8) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachehits9 |Yes |Cache Hits (Shard 9) |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheLatency |Yes |Cache Latency Microseconds (Preview) |Count |Average |The latency to the cache in microseconds. For more details, see https://aka.ms/redis/metrics. |ShardId | -|cachemisses |Yes |Cache Misses |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |ShardId | -|cachemisses0 |Yes |Cache Misses (Shard 0) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachemisses1 |Yes |Cache Misses (Shard 1) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachemisses2 |Yes |Cache Misses (Shard 2) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachemisses3 |Yes |Cache Misses (Shard 3) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachemisses4 |Yes |Cache Misses (Shard 4) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachemisses5 |Yes |Cache Misses (Shard 5) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachemisses6 |Yes |Cache Misses (Shard 6) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachemisses7 |Yes |Cache Misses (Shard 7) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachemisses8 |Yes |Cache Misses (Shard 8) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachemisses9 |Yes |Cache Misses (Shard 9) |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cachemissrate |Yes |Cache Miss Rate |Percent |Total |The % of get requests that miss. For more details, see https://aka.ms/redis/metrics. |ShardId | -|cacheRead |Yes |Cache Read |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |ShardId | -|cacheRead0 |Yes |Cache Read (Shard 0) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheRead1 |Yes |Cache Read (Shard 1) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheRead2 |Yes |Cache Read (Shard 2) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheRead3 |Yes |Cache Read (Shard 3) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheRead4 |Yes |Cache Read (Shard 4) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheRead5 |Yes |Cache Read (Shard 5) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheRead6 |Yes |Cache Read (Shard 6) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheRead7 |Yes |Cache Read (Shard 7) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheRead8 |Yes |Cache Read (Shard 8) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheRead9 |Yes |Cache Read (Shard 9) |BytesPerSecond |Maximum |The amount of data read from the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheWrite |Yes |Cache Write |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |ShardId | -|cacheWrite0 |Yes |Cache Write (Shard 0) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheWrite1 |Yes |Cache Write (Shard 1) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheWrite2 |Yes |Cache Write (Shard 2) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheWrite3 |Yes |Cache Write (Shard 3) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheWrite4 |Yes |Cache Write (Shard 4) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheWrite5 |Yes |Cache Write (Shard 5) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheWrite6 |Yes |Cache Write (Shard 6) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheWrite7 |Yes |Cache Write (Shard 7) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheWrite8 |Yes |Cache Write (Shard 8) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|cacheWrite9 |Yes |Cache Write (Shard 9) |BytesPerSecond |Maximum |The amount of data written to the cache in bytes per second. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|connectedclients |Yes |Connected Clients |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |ShardId | -|connectedclients0 |Yes |Connected Clients (Shard 0) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|connectedclients1 |Yes |Connected Clients (Shard 1) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|connectedclients2 |Yes |Connected Clients (Shard 2) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|connectedclients3 |Yes |Connected Clients (Shard 3) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|connectedclients4 |Yes |Connected Clients (Shard 4) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|connectedclients5 |Yes |Connected Clients (Shard 5) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|connectedclients6 |Yes |Connected Clients (Shard 6) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|connectedclients7 |Yes |Connected Clients (Shard 7) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|connectedclients8 |Yes |Connected Clients (Shard 8) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|connectedclients9 |Yes |Connected Clients (Shard 9) |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|errors |Yes |Errors |Count |Maximum |The number errors that occured on the cache. For more details, see https://aka.ms/redis/metrics. |ShardId, ErrorType | -|evictedkeys |Yes |Evicted Keys |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |ShardId | -|evictedkeys0 |Yes |Evicted Keys (Shard 0) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|evictedkeys1 |Yes |Evicted Keys (Shard 1) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|evictedkeys2 |Yes |Evicted Keys (Shard 2) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|evictedkeys3 |Yes |Evicted Keys (Shard 3) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|evictedkeys4 |Yes |Evicted Keys (Shard 4) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|evictedkeys5 |Yes |Evicted Keys (Shard 5) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|evictedkeys6 |Yes |Evicted Keys (Shard 6) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|evictedkeys7 |Yes |Evicted Keys (Shard 7) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|evictedkeys8 |Yes |Evicted Keys (Shard 8) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|evictedkeys9 |Yes |Evicted Keys (Shard 9) |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|expiredkeys |Yes |Expired Keys |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |ShardId | -|expiredkeys0 |Yes |Expired Keys (Shard 0) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|expiredkeys1 |Yes |Expired Keys (Shard 1) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|expiredkeys2 |Yes |Expired Keys (Shard 2) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|expiredkeys3 |Yes |Expired Keys (Shard 3) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|expiredkeys4 |Yes |Expired Keys (Shard 4) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|expiredkeys5 |Yes |Expired Keys (Shard 5) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|expiredkeys6 |Yes |Expired Keys (Shard 6) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|expiredkeys7 |Yes |Expired Keys (Shard 7) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|expiredkeys8 |Yes |Expired Keys (Shard 8) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|expiredkeys9 |Yes |Expired Keys (Shard 9) |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|GeoReplicationConnectivityLag |Yes |Geo-replication Connectivity Lag |Seconds |Average |Time in seconds since last successful data synchronization with geo-primary cache. Value will continue to increase if the link status is down. For more details, see https://aka.ms/redis/georeplicationmetrics. |ShardId | -|GeoReplicationDataSyncOffset |Yes |Geo-replication Data Sync Offset |Bytes |Average |Approximate amount of data in bytes that needs to be synchronized to geo-secondary cache. For more details, see https://aka.ms/redis/georeplicationmetrics. |ShardId | -|GeoReplicationFullSyncEventFinished |Yes |Geo-replication Full Sync Event Finished |Count |Count |Fired on completion of a full synchronization event between geo-replicated caches. This metric reports 0 most of the time because geo-replication uses partial resynchronizations for any new data added after the initial full synchronization. For more details, see https://aka.ms/redis/georeplicationmetrics. |ShardId | -|GeoReplicationFullSyncEventStarted |Yes |Geo-replication Full Sync Event Started |Count |Count |Fired on initiation of a full synchronization event between geo-replicated caches. This metric reports 0 most of the time because geo-replication uses partial resynchronizations for any new data added after the initial full synchronization. For more details, see https://aka.ms/redis/georeplicationmetrics. |ShardId | -|GeoReplicationHealthy |Yes |Geo-replication Healthy |Count |Minimum |The health status of geo-replication link. 1 if healthy and 0 if disconnected or unhealthy. For more details, see https://aka.ms/redis/georeplicationmetrics. |ShardId | -|getcommands |Yes |Gets |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |ShardId | -|getcommands0 |Yes |Gets (Shard 0) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|getcommands1 |Yes |Gets (Shard 1) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|getcommands2 |Yes |Gets (Shard 2) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|getcommands3 |Yes |Gets (Shard 3) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|getcommands4 |Yes |Gets (Shard 4) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|getcommands5 |Yes |Gets (Shard 5) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|getcommands6 |Yes |Gets (Shard 6) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|getcommands7 |Yes |Gets (Shard 7) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|getcommands8 |Yes |Gets (Shard 8) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|getcommands9 |Yes |Gets (Shard 9) |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|operationsPerSecond |Yes |Operations Per Second |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |ShardId | -|operationsPerSecond0 |Yes |Operations Per Second (Shard 0) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|operationsPerSecond1 |Yes |Operations Per Second (Shard 1) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|operationsPerSecond2 |Yes |Operations Per Second (Shard 2) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|operationsPerSecond3 |Yes |Operations Per Second (Shard 3) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|operationsPerSecond4 |Yes |Operations Per Second (Shard 4) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|operationsPerSecond5 |Yes |Operations Per Second (Shard 5) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|operationsPerSecond6 |Yes |Operations Per Second (Shard 6) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|operationsPerSecond7 |Yes |Operations Per Second (Shard 7) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|operationsPerSecond8 |Yes |Operations Per Second (Shard 8) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|operationsPerSecond9 |Yes |Operations Per Second (Shard 9) |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|percentProcessorTime |Yes |CPU |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |ShardId | -|percentProcessorTime0 |Yes |CPU (Shard 0) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|percentProcessorTime1 |Yes |CPU (Shard 1) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|percentProcessorTime2 |Yes |CPU (Shard 2) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|percentProcessorTime3 |Yes |CPU (Shard 3) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|percentProcessorTime4 |Yes |CPU (Shard 4) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|percentProcessorTime5 |Yes |CPU (Shard 5) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|percentProcessorTime6 |Yes |CPU (Shard 6) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|percentProcessorTime7 |Yes |CPU (Shard 7) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|percentProcessorTime8 |Yes |CPU (Shard 8) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|percentProcessorTime9 |Yes |CPU (Shard 9) |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|serverLoad |Yes |Server Load |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |ShardId | -|serverLoad0 |Yes |Server Load (Shard 0) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|serverLoad1 |Yes |Server Load (Shard 1) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|serverLoad2 |Yes |Server Load (Shard 2) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|serverLoad3 |Yes |Server Load (Shard 3) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|serverLoad4 |Yes |Server Load (Shard 4) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|serverLoad5 |Yes |Server Load (Shard 5) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|serverLoad6 |Yes |Server Load (Shard 6) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|serverLoad7 |Yes |Server Load (Shard 7) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|serverLoad8 |Yes |Server Load (Shard 8) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|serverLoad9 |Yes |Server Load (Shard 9) |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|setcommands |Yes |Sets |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |ShardId | -|setcommands0 |Yes |Sets (Shard 0) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|setcommands1 |Yes |Sets (Shard 1) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|setcommands2 |Yes |Sets (Shard 2) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|setcommands3 |Yes |Sets (Shard 3) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|setcommands4 |Yes |Sets (Shard 4) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|setcommands5 |Yes |Sets (Shard 5) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|setcommands6 |Yes |Sets (Shard 6) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|setcommands7 |Yes |Sets (Shard 7) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|setcommands8 |Yes |Sets (Shard 8) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|setcommands9 |Yes |Sets (Shard 9) |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalcommandsprocessed |Yes |Total Operations |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |ShardId | -|totalcommandsprocessed0 |Yes |Total Operations (Shard 0) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalcommandsprocessed1 |Yes |Total Operations (Shard 1) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalcommandsprocessed2 |Yes |Total Operations (Shard 2) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalcommandsprocessed3 |Yes |Total Operations (Shard 3) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalcommandsprocessed4 |Yes |Total Operations (Shard 4) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalcommandsprocessed5 |Yes |Total Operations (Shard 5) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalcommandsprocessed6 |Yes |Total Operations (Shard 6) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalcommandsprocessed7 |Yes |Total Operations (Shard 7) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalcommandsprocessed8 |Yes |Total Operations (Shard 8) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalcommandsprocessed9 |Yes |Total Operations (Shard 9) |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalkeys |Yes |Total Keys |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |ShardId | -|totalkeys0 |Yes |Total Keys (Shard 0) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalkeys1 |Yes |Total Keys (Shard 1) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalkeys2 |Yes |Total Keys (Shard 2) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalkeys3 |Yes |Total Keys (Shard 3) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalkeys4 |Yes |Total Keys (Shard 4) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalkeys5 |Yes |Total Keys (Shard 5) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalkeys6 |Yes |Total Keys (Shard 6) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalkeys7 |Yes |Total Keys (Shard 7) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalkeys8 |Yes |Total Keys (Shard 8) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|totalkeys9 |Yes |Total Keys (Shard 9) |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemory |Yes |Used Memory |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |ShardId | -|usedmemory0 |Yes |Used Memory (Shard 0) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemory1 |Yes |Used Memory (Shard 1) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemory2 |Yes |Used Memory (Shard 2) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemory3 |Yes |Used Memory (Shard 3) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemory4 |Yes |Used Memory (Shard 4) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemory5 |Yes |Used Memory (Shard 5) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemory6 |Yes |Used Memory (Shard 6) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemory7 |Yes |Used Memory (Shard 7) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemory8 |Yes |Used Memory (Shard 8) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemory9 |Yes |Used Memory (Shard 9) |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemorypercentage |Yes |Used Memory Percentage |Percent |Maximum |The percentage of cache memory used for key/value pairs. For more details, see https://aka.ms/redis/metrics. |ShardId | -|usedmemoryRss |Yes |Used Memory RSS |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |ShardId | -|usedmemoryRss0 |Yes |Used Memory RSS (Shard 0) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemoryRss1 |Yes |Used Memory RSS (Shard 1) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemoryRss2 |Yes |Used Memory RSS (Shard 2) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemoryRss3 |Yes |Used Memory RSS (Shard 3) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemoryRss4 |Yes |Used Memory RSS (Shard 4) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemoryRss5 |Yes |Used Memory RSS (Shard 5) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemoryRss6 |Yes |Used Memory RSS (Shard 6) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemoryRss7 |Yes |Used Memory RSS (Shard 7) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemoryRss8 |Yes |Used Memory RSS (Shard 8) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |No Dimensions | -|usedmemoryRss9 |Yes |Used Memory RSS (Shard 9) |Bytes |Maximum |The amount of cache memory used in MB, including fragmentation and metadata. For more details, see https://aka.ms/redis/metrics. |No Dimensions | --## Microsoft.Cache/redisEnterprise -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|cachehits |Yes |Cache Hits |Count |Total |The number of successful key lookups. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|cacheLatency |Yes |Cache Latency Microseconds (Preview) |Count |Average |The latency to the cache in microseconds. For more details, see https://aka.ms/redis/enterprise/metrics. |InstanceId | -|cachemisses |Yes |Cache Misses |Count |Total |The number of failed key lookups. For more details, see https://aka.ms/redis/enterprise/metrics. |InstanceId | -|cacheRead |Yes |Cache Read |BytesPerSecond |Maximum |The amount of data read from the cache in Megabytes per second (MB/s). For more details, see https://aka.ms/redis/enterprise/metrics. |InstanceId | -|cacheWrite |Yes |Cache Write |BytesPerSecond |Maximum |The amount of data written to the cache in Megabytes per second (MB/s). For more details, see https://aka.ms/redis/enterprise/metrics. |InstanceId | -|connectedclients |Yes |Connected Clients |Count |Maximum |The number of client connections to the cache. For more details, see https://aka.ms/redis/enterprise/metrics. |InstanceId | -|errors |Yes |Errors |Count |Maximum |The number errors that occured on the cache. For more details, see https://aka.ms/redis/enterprise/metrics. |InstanceId, ErrorType | -|evictedkeys |Yes |Evicted Keys |Count |Total |The number of items evicted from the cache. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|expiredkeys |Yes |Expired Keys |Count |Total |The number of items expired from the cache. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|geoReplicationHealthy |Yes |Geo Replication Healthy |Count |Maximum |The health of geo replication in an Active Geo-Replication group. 0 represents Unhealthy and 1 represents Healthy. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|getcommands |Yes |Gets |Count |Total |The number of get operations from the cache. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|operationsPerSecond |Yes |Operations Per Second |Count |Maximum |The number of instantaneous operations per second executed on the cache. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|percentProcessorTime |Yes |CPU |Percent |Maximum |The CPU utilization of the Azure Redis Cache server as a percentage. For more details, see https://aka.ms/redis/enterprise/metrics. |InstanceId | -|serverLoad |Yes |Server Load |Percent |Maximum |The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|setcommands |Yes |Sets |Count |Total |The number of set operations to the cache. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|totalcommandsprocessed |Yes |Total Operations |Count |Total |The total number of commands processed by the cache server. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|totalkeys |Yes |Total Keys |Count |Maximum |The total number of items in the cache. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|usedmemory |Yes |Used Memory |Bytes |Maximum |The amount of cache memory used for key/value pairs in the cache in MB. For more details, see https://aka.ms/redis/enterprise/metrics. |No Dimensions | -|usedmemorypercentage |Yes |Used Memory Percentage |Percent |Maximum |The percentage of cache memory used for key/value pairs. For more details, see https://aka.ms/redis/enterprise/metrics. |InstanceId | --## Microsoft.Cdn/cdnwebapplicationfirewallpolicies -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|WebApplicationFirewallRequestCount |Yes |Web Application Firewall Request Count |Count |Total |The number of client requests processed by the Web Application Firewall |PolicyName, RuleName, Action | --## Microsoft.Cdn/profiles -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ByteHitRatio |Yes |Byte Hit Ratio |Percent |Average |This is the ratio of the total bytes served from the cache compared to the total response bytes |Endpoint | -|OriginHealthPercentage |Yes |Origin Health Percentage |Percent |Average |The percentage of successful health probes from AFDX to backends. |Origin, OriginGroup | -|OriginLatency |Yes |Origin Latency |MilliSeconds |Average |The time calculated from when the request was sent by AFDX edge to the backend until AFDX received the last response byte from the backend. |Origin, Endpoint | -|OriginRequestCount |Yes |Origin Request Count |Count |Total |The number of requests sent from AFDX to origin. |HttpStatus, HttpStatusGroup, Origin, Endpoint | -|Percentage4XX |Yes |Percentage of 4XX |Percent |Average |The percentage of all the client requests for which the response status code is 4XX |Endpoint, ClientRegion, ClientCountry | -|Percentage5XX |Yes |Percentage of 5XX |Percent |Average |The percentage of all the client requests for which the response status code is 5XX |Endpoint, ClientRegion, ClientCountry | -|RequestCount |Yes |Request Count |Count |Total |The number of client requests served by the HTTP/S proxy |HttpStatus, HttpStatusGroup, ClientRegion, ClientCountry, Endpoint | -|RequestSize |Yes |Request Size |Bytes |Total |The number of bytes sent as requests from clients to AFDX. |HttpStatus, HttpStatusGroup, ClientRegion, ClientCountry, Endpoint | -|ResponseSize |Yes |Response Size |Bytes |Total |The number of bytes sent as responses from HTTP/S proxy to clients |HttpStatus, HttpStatusGroup, ClientRegion, ClientCountry, Endpoint | -|TotalLatency |Yes |Total Latency |MilliSeconds |Average |The time calculated from when the client request was received by the HTTP/S proxy until the client acknowledged the last response byte from the HTTP/S proxy |HttpStatus, HttpStatusGroup, ClientRegion, ClientCountry, Endpoint | -|WebApplicationFirewallRequestCount |Yes |Web Application Firewall Request Count |Count |Total |The number of client requests processed by the Web Application Firewall |PolicyName, RuleName, Action | --## Microsoft.ClassicCompute/domainNames/slots/roles -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Disk Read Bytes/Sec |No |Disk Read |BytesPerSecond |Average |Average bytes read from disk during monitoring period. |RoleInstanceId | -|Disk Read Operations/Sec |Yes |Disk Read Operations/Sec |CountPerSecond |Average |Disk Read IOPS. |RoleInstanceId | -|Disk Write Bytes/Sec |No |Disk Write |BytesPerSecond |Average |Average bytes written to disk during monitoring period. |RoleInstanceId | -|Disk Write Operations/Sec |Yes |Disk Write Operations/Sec |CountPerSecond |Average |Disk Write IOPS. |RoleInstanceId | -|Network In |Yes |Network In |Bytes |Total |The number of bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic). |RoleInstanceId | -|Network Out |Yes |Network Out |Bytes |Total |The number of bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic). |RoleInstanceId | -|Percentage CPU |Yes |Percentage CPU |Percent |Average |The percentage of allocated compute units that are currently in use by the Virtual Machine(s). |RoleInstanceId | --## Microsoft.ClassicCompute/virtualMachines -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Disk Read Bytes/Sec |No |Disk Read |BytesPerSecond |Average |Average bytes read from disk during monitoring period. |No Dimensions | -|Disk Read Operations/Sec |Yes |Disk Read Operations/Sec |CountPerSecond |Average |Disk Read IOPS. |No Dimensions | -|Disk Write Bytes/Sec |No |Disk Write |BytesPerSecond |Average |Average bytes written to disk during monitoring period. |No Dimensions | -|Disk Write Operations/Sec |Yes |Disk Write Operations/Sec |CountPerSecond |Average |Disk Write IOPS. |No Dimensions | -|Network In |Yes |Network In |Bytes |Total |The number of bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic). |No Dimensions | -|Network Out |Yes |Network Out |Bytes |Total |The number of bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic). |No Dimensions | -|Percentage CPU |Yes |Percentage CPU |Percent |Average |The percentage of allocated compute units that are currently in use by the Virtual Machine(s). |No Dimensions | --## Microsoft.ClassicStorage/storageAccounts -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Availability |Yes |Availability |Percent |Average |The percentage of availability for the storage service or the specified API operation. Availability is calculated by taking the TotalBillableRequests value and dividing it by the number of applicable requests, including those that produced unexpected errors. All unexpected errors result in reduced availability for the storage service or the specified API operation. |GeoType, ApiName, Authentication | -|Egress |Yes |Egress |Bytes |Total |The amount of egress data, in bytes. This number includes egress from an external client into Azure Storage as well as egress within Azure. As a result, this number does not reflect billable egress. |GeoType, ApiName, Authentication | -|Ingress |Yes |Ingress |Bytes |Total |The amount of ingress data, in bytes. This number includes ingress from an external client into Azure Storage as well as ingress within Azure. |GeoType, ApiName, Authentication | -|SuccessE2ELatency |Yes |Success E2E Latency |Milliseconds |Average |The end-to-end latency of successful requests made to a storage service or the specified API operation, in milliseconds. This value includes the required processing time within Azure Storage to read the request, send the response, and receive acknowledgment of the response. |GeoType, ApiName, Authentication | -|SuccessServerLatency |Yes |Success Server Latency |Milliseconds |Average |The latency used by Azure Storage to process a successful request, in milliseconds. This value does not include the network latency specified in SuccessE2ELatency. |GeoType, ApiName, Authentication | -|Transactions |Yes |Transactions |Count |Total |The number of requests made to a storage service or the specified API operation. This number includes successful and failed requests, as well as requests which produced errors. Use ResponseType dimension for the number of different type of response. |ResponseType, GeoType, ApiName, Authentication | -|UsedCapacity |No |Used capacity |Bytes |Average |Account used capacity |No Dimensions | --## Microsoft.ClassicStorage/storageAccounts/blobServices -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Availability |Yes |Availability |Percent |Average |The percentage of availability for the storage service or the specified API operation. Availability is calculated by taking the TotalBillableRequests value and dividing it by the number of applicable requests, including those that produced unexpected errors. All unexpected errors result in reduced availability for the storage service or the specified API operation. |GeoType, ApiName, Authentication | -|BlobCapacity |No |Blob Capacity |Bytes |Average |The amount of storage used by the storage account's Blob service in bytes. |BlobType, Tier | -|BlobCount |No |Blob Count |Count |Average |The number of Blob in the storage account's Blob service. |BlobType, Tier | -|ContainerCount |No |Blob Container Count |Count |Average |The number of containers in the storage account's Blob service. |No Dimensions | -|Egress |Yes |Egress |Bytes |Total |The amount of egress data, in bytes. This number includes egress from an external client into Azure Storage as well as egress within Azure. As a result, this number does not reflect billable egress. |GeoType, ApiName, Authentication | -|IndexCapacity |No |Index Capacity |Bytes |Average |The amount of storage used by ADLS Gen2 (Hierarchical) Index in bytes. |No Dimensions | -|Ingress |Yes |Ingress |Bytes |Total |The amount of ingress data, in bytes. This number includes ingress from an external client into Azure Storage as well as ingress within Azure. |GeoType, ApiName, Authentication | -|SuccessE2ELatency |Yes |Success E2E Latency |Milliseconds |Average |The end-to-end latency of successful requests made to a storage service or the specified API operation, in milliseconds. This value includes the required processing time within Azure Storage to read the request, send the response, and receive acknowledgment of the response. |GeoType, ApiName, Authentication | -|SuccessServerLatency |Yes |Success Server Latency |Milliseconds |Average |The latency used by Azure Storage to process a successful request, in milliseconds. This value does not include the network latency specified in SuccessE2ELatency. |GeoType, ApiName, Authentication | -|Transactions |Yes |Transactions |Count |Total |The number of requests made to a storage service or the specified API operation. This number includes successful and failed requests, as well as requests which produced errors. Use ResponseType dimension for the number of different type of response. |ResponseType, GeoType, ApiName, Authentication | --## Microsoft.ClassicStorage/storageAccounts/fileServices -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Availability |Yes |Availability |Percent |Average |The percentage of availability for the storage service or the specified API operation. Availability is calculated by taking the TotalBillableRequests value and dividing it by the number of applicable requests, including those that produced unexpected errors. All unexpected errors result in reduced availability for the storage service or the specified API operation. |GeoType, ApiName, Authentication, FileShare | -|Egress |Yes |Egress |Bytes |Total |The amount of egress data, in bytes. This number includes egress from an external client into Azure Storage as well as egress within Azure. As a result, this number does not reflect billable egress. |GeoType, ApiName, Authentication, FileShare | -|FileCapacity |No |File Capacity |Bytes |Average |The amount of storage used by the storage account's File service in bytes. |FileShare | -|FileCount |No |File Count |Count |Average |The number of file in the storage account's File service. |FileShare | -|FileShareCount |No |File Share Count |Count |Average |The number of file shares in the storage account's File service. |No Dimensions | -|FileShareQuota |No |File share quota size |Bytes |Average |The upper limit on the amount of storage that can be used by Azure Files Service in bytes. |FileShare | -|FileShareSnapshotCount |No |File Share Snapshot Count |Count |Average |The number of snapshots present on the share in storage account's Files Service. |FileShare | -|FileShareSnapshotSize |No |File Share Snapshot Size |Bytes |Average |The amount of storage used by the snapshots in storage account's File service in bytes. |FileShare | -|Ingress |Yes |Ingress |Bytes |Total |The amount of ingress data, in bytes. This number includes ingress from an external client into Azure Storage as well as ingress within Azure. |GeoType, ApiName, Authentication, FileShare | -|SuccessE2ELatency |Yes |Success E2E Latency |Milliseconds |Average |The end-to-end latency of successful requests made to a storage service or the specified API operation, in milliseconds. This value includes the required processing time within Azure Storage to read the request, send the response, and receive acknowledgment of the response. |GeoType, ApiName, Authentication, FileShare | -|SuccessServerLatency |Yes |Success Server Latency |Milliseconds |Average |The latency used by Azure Storage to process a successful request, in milliseconds. This value does not include the network latency specified in SuccessE2ELatency. |GeoType, ApiName, Authentication, FileShare | -|Transactions |Yes |Transactions |Count |Total |The number of requests made to a storage service or the specified API operation. This number includes successful and failed requests, as well as requests which produced errors. Use ResponseType dimension for the number of different type of response. |ResponseType, GeoType, ApiName, Authentication, FileShare | --## Microsoft.ClassicStorage/storageAccounts/queueServices -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Availability |Yes |Availability |Percent |Average |The percentage of availability for the storage service or the specified API operation. Availability is calculated by taking the TotalBillableRequests value and dividing it by the number of applicable requests, including those that produced unexpected errors. All unexpected errors result in reduced availability for the storage service or the specified API operation. |GeoType, ApiName, Authentication | -|Egress |Yes |Egress |Bytes |Total |The amount of egress data, in bytes. This number includes egress from an external client into Azure Storage as well as egress within Azure. As a result, this number does not reflect billable egress. |GeoType, ApiName, Authentication | -|Ingress |Yes |Ingress |Bytes |Total |The amount of ingress data, in bytes. This number includes ingress from an external client into Azure Storage as well as ingress within Azure. |GeoType, ApiName, Authentication | -|QueueCapacity |Yes |Queue Capacity |Bytes |Average |The amount of storage used by the storage account's Queue service in bytes. |No Dimensions | -|QueueCount |Yes |Queue Count |Count |Average |The number of queue in the storage account's Queue service. |No Dimensions | -|QueueMessageCount |Yes |Queue Message Count |Count |Average |The approximate number of queue messages in the storage account's Queue service. |No Dimensions | -|SuccessE2ELatency |Yes |Success E2E Latency |Milliseconds |Average |The end-to-end latency of successful requests made to a storage service or the specified API operation, in milliseconds. This value includes the required processing time within Azure Storage to read the request, send the response, and receive acknowledgment of the response. |GeoType, ApiName, Authentication | -|SuccessServerLatency |Yes |Success Server Latency |Milliseconds |Average |The latency used by Azure Storage to process a successful request, in milliseconds. This value does not include the network latency specified in SuccessE2ELatency. |GeoType, ApiName, Authentication | -|Transactions |Yes |Transactions |Count |Total |The number of requests made to a storage service or the specified API operation. This number includes successful and failed requests, as well as requests which produced errors. Use ResponseType dimension for the number of different type of response. |ResponseType, GeoType, ApiName, Authentication | --## Microsoft.ClassicStorage/storageAccounts/tableServices -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Availability |Yes |Availability |Percent |Average |The percentage of availability for the storage service or the specified API operation. Availability is calculated by taking the TotalBillableRequests value and dividing it by the number of applicable requests, including those that produced unexpected errors. All unexpected errors result in reduced availability for the storage service or the specified API operation. |GeoType, ApiName, Authentication | -|Egress |Yes |Egress |Bytes |Total |The amount of egress data, in bytes. This number includes egress from an external client into Azure Storage as well as egress within Azure. As a result, this number does not reflect billable egress. |GeoType, ApiName, Authentication | -|Ingress |Yes |Ingress |Bytes |Total |The amount of ingress data, in bytes. This number includes ingress from an external client into Azure Storage as well as ingress within Azure. |GeoType, ApiName, Authentication | -|SuccessE2ELatency |Yes |Success E2E Latency |Milliseconds |Average |The end-to-end latency of successful requests made to a storage service or the specified API operation, in milliseconds. This value includes the required processing time within Azure Storage to read the request, send the response, and receive acknowledgment of the response. |GeoType, ApiName, Authentication | -|SuccessServerLatency |Yes |Success Server Latency |Milliseconds |Average |The latency used by Azure Storage to process a successful request, in milliseconds. This value does not include the network latency specified in SuccessE2ELatency. |GeoType, ApiName, Authentication | -|TableCapacity |No |Table Capacity |Bytes |Average |The amount of storage used by the storage account's Table service in bytes. |No Dimensions | -|TableCount |No |Table Count |Count |Average |The number of table in the storage account's Table service. |No Dimensions | -|TableEntityCount |No |Table Entity Count |Count |Average |The number of table entities in the storage account's Table service. |No Dimensions | -|Transactions |Yes |Transactions |Count |Total |The number of requests made to a storage service or the specified API operation. This number includes successful and failed requests, as well as requests which produced errors. Use ResponseType dimension for the number of different type of response. |ResponseType, GeoType, ApiName, Authentication | --## Microsoft.Cloudtest/hostedpools -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Allocated |Yes |Allocated |Count |Average |Resources that are allocated |PoolId, SKU, Images, ProviderName | -|AllocationDurationMs |Yes |AllocationDurationMs |Milliseconds |Average |Average time to allocate requests (ms) |PoolId, Type, ResourceRequestType, Image | -|Count |Yes |Count |Count |Count |Number of requests in last dump |RequestType, Status, PoolId, Type, ErrorCode, FailureStage | -|NotReady |Yes |NotReady |Count |Average |Resources that are not ready to be used |PoolId, SKU, Images, ProviderName | -|PendingReimage |Yes |PendingReimage |Count |Average |Resources that are pending reimage |PoolId, SKU, Images, ProviderName | -|PendingReturn |Yes |PendingReturn |Count |Average |Resources that are pending return |PoolId, SKU, Images, ProviderName | -|Provisioned |Yes |Provisioned |Count |Average |Resources that are provisioned |PoolId, SKU, Images, ProviderName | -|Ready |Yes |Ready |Count |Average |Resources that are ready to be used |PoolId, SKU, Images, ProviderName | -|Starting |Yes |Starting |Count |Average |Resources that are starting |PoolId, SKU, Images, ProviderName | -|Total |Yes |Total |Count |Average |Total Number of Resources |PoolId, SKU, Images, ProviderName | --## Microsoft.Cloudtest/pools -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Allocated |Yes |Allocated |Count |Average |Resources that are allocated |PoolId, SKU, Images, ProviderName | -|AllocationDurationMs |Yes |AllocationDurationMs |Milliseconds |Average |Average time to allocate requests (ms) |PoolId, Type, ResourceRequestType, Image | -|Count |Yes |Count |Count |Count |Number of requests in last dump |RequestType, Status, PoolId, Type, ErrorCode, FailureStage | -|NotReady |Yes |NotReady |Count |Average |Resources that are not ready to be used |PoolId, SKU, Images, ProviderName | -|PendingReimage |Yes |PendingReimage |Count |Average |Resources that are pending reimage |PoolId, SKU, Images, ProviderName | -|PendingReturn |Yes |PendingReturn |Count |Average |Resources that are pending return |PoolId, SKU, Images, ProviderName | -|Provisioned |Yes |Provisioned |Count |Average |Resources that are provisioned |PoolId, SKU, Images, ProviderName | -|Ready |Yes |Ready |Count |Average |Resources that are ready to be used |PoolId, SKU, Images, ProviderName | -|Starting |Yes |Starting |Count |Average |Resources that are starting |PoolId, SKU, Images, ProviderName | -|Total |Yes |Total |Count |Average |Total Number of Resources |PoolId, SKU, Images, ProviderName | --## Microsoft.ClusterStor/nodes -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|TotalCapacityAvailable |No |TotalCapacityAvailable |Bytes |Average |The total capacity available in lustre file system |filesystem_name, category, system | -|TotalCapacityUsed |No |TotalCapacityUsed |Bytes |Average |The total capacity used in lustre file system |filesystem_name, category, system | -|TotalRead |No |TotalRead |BytesPerSecond |Average |The total lustre file system read per second |filesystem_name, category, system | -|TotalWrite |No |TotalWrite |BytesPerSecond |Average |The total lustre file system write per second |filesystem_name, category, system | --## Microsoft.CodeSigning/codesigningaccounts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|SignCompleted |Yes |SignCompleted |Count |Count |Completed Sign Request |CertType, Region, TenantId | --## Microsoft.CognitiveServices/accounts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ActionFeatureIdOccurrences |Yes |Action Feature Occurrences |Count |Total |Number of times each action feature appears. |FeatureId, Mode, RunId | -|ActionFeaturesPerEvent |Yes |Action Features Per Event |Count |Average |Average number of action features per event. |Mode, RunId | -|ActionIdOccurrences |Yes |Action Occurences |Count |Total |Number of times each action appears. |ActionId, Mode, RunId | -|ActionNamespacesPerEvent |Yes |Action Namespaces Per Event |Count |Average |Average number of action namespaces per event. |Mode, RunId | -|ActionsPerEvent |Yes |Actions Per Event |Count |Average |Number of actions per event. |Mode, RunId | -|AudioSecondsTranscribed |Yes |Audio Seconds Transcribed |Count |Total |Number of seconds transcribed |ApiName, FeatureName, UsageChannel, Region | -|AudioSecondsTranslated |Yes |Audio Seconds Translated |Count |Total |Number of seconds translated |ApiName, FeatureName, UsageChannel, Region | -|BaselineEstimatorOverallReward |Yes |Baseline Estimator Overall Reward |Count |Average |Baseline Estimator Overall Reward. |Mode, RunId | -|BaselineEstimatorSlotReward |Yes |Baseline Estimator Slot Reward |Count |Average |Baseline Estimator Reward by slot. |SlotId, SlotIndex, Mode, RunId | -|BaselineRandomEstimatorOverallReward |Yes |Baseline Random Estimator Overall Reward |Count |Average |Baseline Random Estimator Overall Reward. |Mode, RunId | -|BaselineRandomEstimatorSlotReward |Yes |Baseline Random Estimator Slot Reward |Count |Average |Baseline Random Estimator Reward by slot. |SlotId, SlotIndex, Mode, RunId | -|BaselineRandomEventCount |Yes |Baseline Random Event count |Count |Total |Estimation for baseline random event count. |Mode, RunId | -|BaselineRandomReward |Yes |Baseline Random Reward |Count |Total |Estimation for baseline random reward. |Mode, RunId | -|BlockedCalls |Yes |Blocked Calls |Count |Total |Number of calls that exceeded rate or quota limit. |ApiName, OperationName, Region, RatelimitKey | -|CarnegieInferenceCount |Yes |Inference Count |Count |Total |Inference Count of Carnegie Frontdoor Service |Region, Modality, Category, Language, SeverityLevel, UseCustomList | -|CharactersTrained |Yes |Characters Trained (Deprecated) |Count |Total |Total number of characters trained. |ApiName, OperationName, Region | -|CharactersTranslated |Yes |Characters Translated (Deprecated) |Count |Total |Total number of characters in incoming text request. |ApiName, OperationName, Region | -|ClientErrors |Yes |Client Errors |Count |Total |Number of calls with client side error (HTTP response code 4xx). |ApiName, OperationName, Region, RatelimitKey | -|ComputerVisionTransactions |Yes |Computer Vision Transactions |Count |Total |Number of Computer Vision Transactions |ApiName, FeatureName, UsageChannel, Region | -|ContextFeatureIdOccurrences |Yes |Context Feature Occurrences |Count |Total |Number of times each context feature appears. |FeatureId, Mode, RunId | -|ContextFeaturesPerEvent |Yes |Context Features Per Event |Count |Average |Number of context features per event. |Mode, RunId | -|ContextNamespacesPerEvent |Yes |Context Namespaces Per Event |Count |Average |Number of context namespaces per event. |Mode, RunId | -|CustomVisionTrainingTime |Yes |Custom Vision Training Time |Seconds |Total |Custom Vision training time |ApiName, FeatureName, UsageChannel, Region | -|CustomVisionTransactions |Yes |Custom Vision Transactions |Count |Total |Number of Custom Vision prediction transactions |ApiName, FeatureName, UsageChannel, Region | -|DataIn |Yes |Data In |Bytes |Total |Size of incoming data in bytes. |ApiName, OperationName, Region | -|DataOut |Yes |Data Out |Bytes |Total |Size of outgoing data in bytes. |ApiName, OperationName, Region | -|DocumentCharactersTranslated |Yes |Document Characters Translated |Count |Total |Number of characters in document translation request. |ApiName, FeatureName, UsageChannel, Region | -|DocumentCustomCharactersTranslated |Yes |Document Custom Characters Translated |Count |Total |Number of characters in custom document translation request. |ApiName, FeatureName, UsageChannel, Region | -|FaceImagesTrained |Yes |Face Images Trained |Count |Total |Number of images trained. 1,000 images trained per transaction. |ApiName, FeatureName, UsageChannel, Region | -|FacesStored |Yes |Faces Stored |Count |Total |Number of faces stored, prorated daily. The number of faces stored is reported daily. |ApiName, FeatureName, UsageChannel, Region | -|FaceTransactions |Yes |Face Transactions |Count |Total |Number of API calls made to Face service |ApiName, FeatureName, UsageChannel, Region | -|FeatureCardinality_Action |Yes |Feature Cardinality by Action |Count |Average |Feature Cardinality based on Action. |FeatureId, Mode, RunId | -|FeatureCardinality_Context |Yes |Feature Cardinality by Context |Count |Average |Feature Cardinality based on Context. |FeatureId, Mode, RunId | -|FeatureCardinality_Slot |Yes |Feature Cardinality by Slot |Count |Average |Feature Cardinality based on Slot. |FeatureId, Mode, RunId | -|FineTunedTrainingHours |Yes |Processed FineTuned Training Hours |Count |Total |Number of Training Hours Processed on an OpenAI FineTuned Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region | -|ImagesStored |Yes |Images Stored |Count |Total |Number of Custom Vision images stored. |ApiName, FeatureName, UsageChannel, Region | -|Latency |Yes |Latency |MilliSeconds |Average |Latency in milliseconds. |ApiName, OperationName, Region, RatelimitKey | -|LearnedEvents |Yes |Learned Events |Count |Total |Number of Learned Events. |IsMatchBaseline, Mode, RunId | -|LUISSpeechRequests |Yes |LUIS Speech Requests |Count |Total |Number of LUIS speech to intent understanding requests |ApiName, FeatureName, UsageChannel, Region | -|LUISTextRequests |Yes |LUIS Text Requests |Count |Total |Number of LUIS text requests |ApiName, FeatureName, UsageChannel, Region | -|MatchedRewards |Yes |Matched Rewards |Count |Total |Number of Matched Rewards. |Mode, RunId | -|NonActivatedEvents |Yes |Non Activated Events |Count |Total |Number of skipped events. |Mode, RunId | -|NumberOfSlots |Yes |Slots |Count |Average |Number of slots per event. |Mode, RunId | -|NumberofSpeakerProfiles |Yes |Number of Speaker Profiles |Count |Total |Number of speaker profiles enrolled. Prorated hourly. |ApiName, FeatureName, UsageChannel, Region | -|ObservedRewards |Yes |Observed Rewards |Count |Total |Number of Observed Rewards. |Mode, RunId | -|OnlineEstimatorOverallReward |Yes |Online Estimator Overall Reward |Count |Average |Online Estimator Overall Reward. |Mode, RunId | -|OnlineEstimatorSlotReward |Yes |Online Estimator Slot Reward |Count |Average |Online Estimator Reward by slot. |SlotId, SlotIndex, Mode, RunId | -|OnlineEventCount |Yes |Online Event Count |Count |Total |Estimation for online event count. |Mode, RunId | -|OnlineReward |Yes |Online Reward |Count |Total |Estimation for online reward. |Mode, RunId | -|ProcessedCharacters |Yes |Processed Characters |Count |Total |Number of Characters processed by Immersive Reader. |ApiName, FeatureName, UsageChannel, Region | -|ProcessedHealthTextRecords |Yes |Processed Health Text Records |Count |Total |Number of health text records processed |ApiName, FeatureName, UsageChannel, Region | -|ProcessedImages |Yes |Processed Images |Count |Total |Number of images processed |ApiName, FeatureName, UsageChannel, Region | -|ProcessedPages |Yes |Processed Pages |Count |Total |Number of pages processed |ApiName, FeatureName, UsageChannel, Region | -|ProcessedTextRecords |Yes |Processed Text Records |Count |Total |Count of Text Records. |ApiName, FeatureName, UsageChannel, Region | -|QuestionAnsweringTextRecords |Yes |QA Text Records |Count |Total |Number of text records processed |ApiName, FeatureName, UsageChannel, Region | -|Ratelimit |Yes |Ratelimit |Count |Total |The current ratelimit of the ratelimit key. |Region, RatelimitKey | -|Reward |Yes |Average Reward Per Event |Count |Average |Average reward per event. |BaselineAction, ChosenActionId, MatchesBaseline, NonDefaultReward, Mode, RunId | -|ServerErrors |Yes |Server Errors |Count |Total |Number of calls with service internal error (HTTP response code 5xx). |ApiName, OperationName, Region, RatelimitKey | -|SlotFeatureIdOccurrences |Yes |Slot Feature Occurrences |Count |Total |Number of times each slot feature appears. |FeatureId, Mode, RunId | -|SlotFeaturesPerEvent |Yes |Slot Features Per Event |Count |Average |Average number of slot features per event. |Mode, RunId | -|SlotIdOccurrences |Yes |Slot Occurrences |Count |Total |Number of times each slot appears. |SlotId, SlotIndex, Mode, RunId | -|SlotNamespacesPerEvent |Yes |Slot Namespaces Per Event |Count |Average |Average number of slot namespaces per event. |Mode, RunId | -|SlotReward |Yes |Slot Reward |Count |Average |Reward per slot. |BaselineActionId, ChosenActionId, MatchesBaseline, NonDefaultReward, SlotId, SlotIndex, Mode, RunId | -|SpeakerRecognitionTransactions |Yes |Speaker Recognition Transactions |Count |Total |Number of speaker recognition transactions |ApiName, FeatureName, UsageChannel, Region | -|SpeechModelHostingHours |Yes |Speech Model Hosting Hours |Count |Total |Number of speech model hosting hours |ApiName, FeatureName, UsageChannel, Region | -|SpeechSessionDuration |Yes |Speech Session Duration (Deprecated) |Seconds |Total |Total duration of speech session in seconds. |ApiName, OperationName, Region | -|SuccessfulCalls |Yes |Successful Calls |Count |Total |Number of successful calls. |ApiName, OperationName, Region, RatelimitKey | -|SuccessRate |No |Availability |Percent |Average |Availability percentage with the following calculation: (Total Calls - Server Errors)/Total Calls. Server Errors include any HTTP responses >=500. |ApiName, OperationName, Region, RatelimitKey | -|SynthesizedCharacters |Yes |Synthesized Characters |Count |Total |Number of Characters. |ApiName, FeatureName, UsageChannel, Region | -|TextCharactersTranslated |Yes |Text Characters Translated |Count |Total |Number of characters in incoming text translation request. |ApiName, FeatureName, UsageChannel, Region | -|TextCustomCharactersTranslated |Yes |Text Custom Characters Translated |Count |Total |Number of characters in incoming custom text translation request. |ApiName, FeatureName, UsageChannel, Region | -|TextTrainedCharacters |Yes |Text Trained Characters |Count |Total |Number of characters trained using text translation. |ApiName, FeatureName, UsageChannel, Region | -|TokenTransaction |Yes |Processed Inference Tokens |Count |Total |Number of Inference Tokens Processed on an OpenAI Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region | -|TotalCalls |Yes |Total Calls |Count |Total |Total number of calls. |ApiName, OperationName, Region, RatelimitKey | -|TotalErrors |Yes |Total Errors |Count |Total |Total number of calls with error response (HTTP response code 4xx or 5xx). |ApiName, OperationName, Region, RatelimitKey | -|TotalEvents |Yes |Total Events |Count |Total |Number of events. |Mode, RunId | -|TotalTokenCalls |Yes |Total Token Calls |Count |Total |Total number of token calls. |ApiName, OperationName, Region | -|TotalTransactions |Yes |Total Transactions (Deprecated) |Count |Total |Total number of transactions. |No Dimensions | -|UserBaselineEventCount |Yes |User Baseline Event Count |Count |Total |Estimation for user defined baseline event count. |Mode, RunId | -|UserBaselineReward |Yes |User Baseline Reward |Count |Total |Estimation for user defined baseline reward. |Mode, RunId | -|VoiceModelHostingHours |Yes |Voice Model Hosting Hours |Count |Total |Number of Hours. |ApiName, FeatureName, UsageChannel, Region | -|VoiceModelTrainingMinutes |Yes |Voice Model Training Minutes |Count |Total |Number of Minutes. |ApiName, FeatureName, UsageChannel, Region | --## Microsoft.Communication/CommunicationServices -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|APIRequestAuthentication |No |Authentication API Requests |Count |Count |Count of all requests against the Communication Services Authentication endpoint. |Operation, StatusCode, StatusCodeClass | -|APIRequestCallAutomation |Yes |Call Automation API Requests |Count |Count |Count of all requests against the Communication Call Automation endpoint. |Operation, StatusCode, StatusCodeClass | -|APIRequestCallRecording |Yes |Call Recording API Requests |Count |Count |Count of all requests against the Communication Services Call Recording endpoint. |Operation, StatusCode, StatusCodeClass | -|APIRequestChat |Yes |Chat API Requests |Count |Count |Count of all requests against the Communication Services Chat endpoint. |Operation, StatusCode, StatusCodeClass | -|APIRequestNetworkTraversal |No |Network Traversal API Requests |Count |Count |Count of all requests against the Communication Services Network Traversal endpoint. |Operation, StatusCode, StatusCodeClass | -|ApiRequestRooms |Yes |Rooms API Requests |Count |Count |Count of all requests against the Communication Services Rooms endpoint. |Operation, StatusCode, StatusCodeClass | -|ApiRequestRouter |Yes |Job Router API Requests |Count |Count |Count of all requests against the Communication Services Job Router endpoint. |OperationName, StatusCode, StatusCodeSubClass, ApiVersion | -|ApiRequests |Yes |Email Service API Requests |Count |Count |Email Communication Services API request metric for the data-plane API surface. |Operation, StatusCode, StatusCodeClass, StatusCodeReason | -|APIRequestSMS |Yes |SMS API Requests |Count |Count |Count of all requests against the Communication Services SMS endpoint. |Operation, StatusCode, StatusCodeClass, ErrorCode, NumberType, Country, OptAction | -|DeliveryStatusUpdate |Yes |Email Service Delivery Status Updates |Count |Count |Email Communication Services message delivery results. |MessageStatus, Result | -|UserEngagement |Yes |Email Service User Engagement |Count |Count |Email Communication Services user engagement metrics. |EngagementType | --## Microsoft.Compute/cloudservices -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Available Memory Bytes |Yes |Available Memory Bytes (Preview) |Bytes |Average |Amount of physical memory, in bytes, immediately available for allocation to a process or for system use in the Virtual Machine |RoleInstanceId, RoleId | -|Disk Read Bytes |Yes |Disk Read Bytes |Bytes |Total |Bytes read from disk during monitoring period |RoleInstanceId, RoleId | -|Disk Read Operations/Sec |Yes |Disk Read Operations/Sec |CountPerSecond |Average |Disk Read IOPS |RoleInstanceId, RoleId | -|Disk Write Bytes |Yes |Disk Write Bytes |Bytes |Total |Bytes written to disk during monitoring period |RoleInstanceId, RoleId | -|Disk Write Operations/Sec |Yes |Disk Write Operations/Sec |CountPerSecond |Average |Disk Write IOPS |RoleInstanceId, RoleId | -|Network In Total |Yes |Network In Total |Bytes |Total |The number of bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic) |RoleInstanceId, RoleId | -|Network Out Total |Yes |Network Out Total |Bytes |Total |The number of bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic) |RoleInstanceId, RoleId | -|Percentage CPU |Yes |Percentage CPU |Percent |Average |The percentage of allocated compute units that are currently in use by the Virtual Machine(s) |RoleInstanceId, RoleId | --## Microsoft.Compute/cloudServices/roles -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Available Memory Bytes |Yes |Available Memory Bytes (Preview) |Bytes |Average |Amount of physical memory, in bytes, immediately available for allocation to a process or for system use in the Virtual Machine |RoleInstanceId, RoleId | -|Disk Read Bytes |Yes |Disk Read Bytes |Bytes |Total |Bytes read from disk during monitoring period |RoleInstanceId, RoleId | -|Disk Read Operations/Sec |Yes |Disk Read Operations/Sec |CountPerSecond |Average |Disk Read IOPS |RoleInstanceId, RoleId | -|Disk Write Bytes |Yes |Disk Write Bytes |Bytes |Total |Bytes written to disk during monitoring period |RoleInstanceId, RoleId | -|Disk Write Operations/Sec |Yes |Disk Write Operations/Sec |CountPerSecond |Average |Disk Write IOPS |RoleInstanceId, RoleId | -|Network In Total |Yes |Network In Total |Bytes |Total |The number of bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic) |RoleInstanceId, RoleId | -|Network Out Total |Yes |Network Out Total |Bytes |Total |The number of bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic) |RoleInstanceId, RoleId | -|Percentage CPU |Yes |Percentage CPU |Percent |Average |The percentage of allocated compute units that are currently in use by the Virtual Machine(s) |RoleInstanceId, RoleId | --## microsoft.compute/disks -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Composite Disk Read Bytes/sec |No |Disk Read Bytes/sec(Preview) |BytesPerSecond |Average |Bytes/sec read from disk during monitoring period, please note, this metric is in preview and is subject to change before becoming generally available |No Dimensions | -|Composite Disk Read Operations/sec |No |Disk Read Operations/sec(Preview) |CountPerSecond |Average |Number of read IOs performed on a disk during monitoring period, please note, this metric is in preview and is subject to change before becoming generally available |No Dimensions | -|Composite Disk Write Bytes/sec |No |Disk Write Bytes/sec(Preview) |BytesPerSecond |Average |Bytes/sec written to disk during monitoring period, please note, this metric is in preview and is subject to change before becoming generally available |No Dimensions | -|Composite Disk Write Operations/sec |No |Disk Write Operations/sec(Preview) |CountPerSecond |Average |Number of Write IOs performed on a disk during monitoring period, please note, this metric is in preview and is subject to change before becoming generally available |No Dimensions | -|DiskPaidBurstIOPS |No |Disk On-demand Burst Operations(Preview) |Count |Average |The accumulated operations of burst transactions used for disks with on-demand burst enabled. Emitted on an hour interval |No Dimensions | --## Microsoft.Compute/virtualMachines -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Available Memory Bytes |Yes |Available Memory Bytes (Preview) |Bytes |Average |Amount of physical memory, in bytes, immediately available for allocation to a process or for system use in the Virtual Machine |No Dimensions | -|CPU Credits Consumed |Yes |CPU Credits Consumed |Count |Average |Total number of credits consumed by the Virtual Machine. Only available on B-series burstable VMs |No Dimensions | -|CPU Credits Remaining |Yes |CPU Credits Remaining |Count |Average |Total number of credits available to burst. Only available on B-series burstable VMs |No Dimensions | -|Data Disk Bandwidth Consumed Percentage |Yes |Data Disk Bandwidth Consumed Percentage |Percent |Average |Percentage of data disk bandwidth consumed per minute. Only available on VM series that support premium storage. |LUN | -|Data Disk IOPS Consumed Percentage |Yes |Data Disk IOPS Consumed Percentage |Percent |Average |Percentage of data disk I/Os consumed per minute. Only available on VM series that support premium storage. |LUN | -|Data Disk Max Burst Bandwidth |Yes |Data Disk Max Burst Bandwidth |Count |Average |Maximum bytes per second throughput Data Disk can achieve with bursting |LUN | -|Data Disk Max Burst IOPS |Yes |Data Disk Max Burst IOPS |Count |Average |Maximum IOPS Data Disk can achieve with bursting |LUN | -|Data Disk Queue Depth |Yes |Data Disk Queue Depth |Count |Average |Data Disk Queue Depth(or Queue Length) |LUN | -|Data Disk Read Bytes/sec |Yes |Data Disk Read Bytes/Sec |BytesPerSecond |Average |Bytes/Sec read from a single disk during monitoring period |LUN | -|Data Disk Read Operations/Sec |Yes |Data Disk Read Operations/Sec |CountPerSecond |Average |Read IOPS from a single disk during monitoring period |LUN | -|Data Disk Target Bandwidth |Yes |Data Disk Target Bandwidth |Count |Average |Baseline bytes per second throughput Data Disk can achieve without bursting |LUN | -|Data Disk Target IOPS |Yes |Data Disk Target IOPS |Count |Average |Baseline IOPS Data Disk can achieve without bursting |LUN | -|Data Disk Used Burst BPS Credits Percentage |Yes |Data Disk Used Burst BPS Credits Percentage |Percent |Average |Percentage of Data Disk burst bandwidth credits used so far |LUN | -|Data Disk Used Burst IO Credits Percentage |Yes |Data Disk Used Burst IO Credits Percentage |Percent |Average |Percentage of Data Disk burst I/O credits used so far |LUN | -|Data Disk Write Bytes/sec |Yes |Data Disk Write Bytes/Sec |BytesPerSecond |Average |Bytes/Sec written to a single disk during monitoring period |LUN | -|Data Disk Write Operations/Sec |Yes |Data Disk Write Operations/Sec |CountPerSecond |Average |Write IOPS from a single disk during monitoring period |LUN | -|Disk Read Bytes |Yes |Disk Read Bytes |Bytes |Total |Bytes read from disk during monitoring period |No Dimensions | -|Disk Read Operations/Sec |Yes |Disk Read Operations/Sec |CountPerSecond |Average |Disk Read IOPS |No Dimensions | -|Disk Write Bytes |Yes |Disk Write Bytes |Bytes |Total |Bytes written to disk during monitoring period |No Dimensions | -|Disk Write Operations/Sec |Yes |Disk Write Operations/Sec |CountPerSecond |Average |Disk Write IOPS |No Dimensions | -|Inbound Flows |Yes |Inbound Flows |Count |Average |Inbound Flows are number of current flows in the inbound direction (traffic going into the VM) |No Dimensions | -|Inbound Flows Maximum Creation Rate |Yes |Inbound Flows Maximum Creation Rate |CountPerSecond |Average |The maximum creation rate of inbound flows (traffic going into the VM) |No Dimensions | -|Network In |Yes |Network In Billable (Deprecated) |Bytes |Total |The number of billable bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic) (Deprecated) |No Dimensions | -|Network In Total |Yes |Network In Total |Bytes |Total |The number of bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic) |No Dimensions | -|Network Out |Yes |Network Out Billable (Deprecated) |Bytes |Total |The number of billable bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic) (Deprecated) |No Dimensions | -|Network Out Total |Yes |Network Out Total |Bytes |Total |The number of bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic) |No Dimensions | -|OS Disk Bandwidth Consumed Percentage |Yes |OS Disk Bandwidth Consumed Percentage |Percent |Average |Percentage of operating system disk bandwidth consumed per minute. Only available on VM series that support premium storage. |LUN | -|OS Disk IOPS Consumed Percentage |Yes |OS Disk IOPS Consumed Percentage |Percent |Average |Percentage of operating system disk I/Os consumed per minute. Only available on VM series that support premium storage. |LUN | -|OS Disk Max Burst Bandwidth |Yes |OS Disk Max Burst Bandwidth |Count |Average |Maximum bytes per second throughput OS Disk can achieve with bursting |LUN | -|OS Disk Max Burst IOPS |Yes |OS Disk Max Burst IOPS |Count |Average |Maximum IOPS OS Disk can achieve with bursting |LUN | -|OS Disk Queue Depth |Yes |OS Disk Queue Depth |Count |Average |OS Disk Queue Depth(or Queue Length) |No Dimensions | -|OS Disk Read Bytes/sec |Yes |OS Disk Read Bytes/Sec |BytesPerSecond |Average |Bytes/Sec read from a single disk during monitoring period for OS disk |No Dimensions | -|OS Disk Read Operations/Sec |Yes |OS Disk Read Operations/Sec |CountPerSecond |Average |Read IOPS from a single disk during monitoring period for OS disk |No Dimensions | -|OS Disk Target Bandwidth |Yes |OS Disk Target Bandwidth |Count |Average |Baseline bytes per second throughput OS Disk can achieve without bursting |LUN | -|OS Disk Target IOPS |Yes |OS Disk Target IOPS |Count |Average |Baseline IOPS OS Disk can achieve without bursting |LUN | -|OS Disk Used Burst BPS Credits Percentage |Yes |OS Disk Used Burst BPS Credits Percentage |Percent |Average |Percentage of OS Disk burst bandwidth credits used so far |LUN | -|OS Disk Used Burst IO Credits Percentage |Yes |OS Disk Used Burst IO Credits Percentage |Percent |Average |Percentage of OS Disk burst I/O credits used so far |LUN | -|OS Disk Write Bytes/sec |Yes |OS Disk Write Bytes/Sec |BytesPerSecond |Average |Bytes/Sec written to a single disk during monitoring period for OS disk |No Dimensions | -|OS Disk Write Operations/Sec |Yes |OS Disk Write Operations/Sec |CountPerSecond |Average |Write IOPS from a single disk during monitoring period for OS disk |No Dimensions | -|Outbound Flows |Yes |Outbound Flows |Count |Average |Outbound Flows are number of current flows in the outbound direction (traffic going out of the VM) |No Dimensions | -|Outbound Flows Maximum Creation Rate |Yes |Outbound Flows Maximum Creation Rate |CountPerSecond |Average |The maximum creation rate of outbound flows (traffic going out of the VM) |No Dimensions | -|Percentage CPU |Yes |Percentage CPU |Percent |Average |The percentage of allocated compute units that are currently in use by the Virtual Machine(s) |No Dimensions | -|Premium Data Disk Cache Read Hit |Yes |Premium Data Disk Cache Read Hit |Percent |Average |Premium Data Disk Cache Read Hit |LUN | -|Premium Data Disk Cache Read Miss |Yes |Premium Data Disk Cache Read Miss |Percent |Average |Premium Data Disk Cache Read Miss |LUN | -|Premium OS Disk Cache Read Hit |Yes |Premium OS Disk Cache Read Hit |Percent |Average |Premium OS Disk Cache Read Hit |No Dimensions | -|Premium OS Disk Cache Read Miss |Yes |Premium OS Disk Cache Read Miss |Percent |Average |Premium OS Disk Cache Read Miss |No Dimensions | -|VM Cached Bandwidth Consumed Percentage |Yes |VM Cached Bandwidth Consumed Percentage |Percent |Average |Percentage of cached disk bandwidth consumed by the VM. Only available on VM series that support premium storage. |No Dimensions | -|VM Cached IOPS Consumed Percentage |Yes |VM Cached IOPS Consumed Percentage |Percent |Average |Percentage of cached disk IOPS consumed by the VM. Only available on VM series that support premium storage. |No Dimensions | -|VM Local Used Burst BPS Credits Percentage |Yes |VM Cached Used Burst BPS Credits Percentage |Percent |Average |Percentage of Cached Burst BPS Credits used by the VM. |No Dimensions | -|VM Local Used Burst IO Credits Percentage |Yes |VM Cached Used Burst IO Credits Percentage |Percent |Average |Percentage of Cached Burst IO Credits used by the VM. |No Dimensions | -|VM Remote Used Burst BPS Credits Percentage |Yes |VM Uncached Used Burst BPS Credits Percentage |Percent |Average |Percentage of Uncached Burst BPS Credits used by the VM. |No Dimensions | -|VM Remote Used Burst IO Credits Percentage |Yes |VM Uncached Used Burst IO Credits Percentage |Percent |Average |Percentage of Uncached Burst IO Credits used by the VM. |No Dimensions | -|VM Uncached Bandwidth Consumed Percentage |Yes |VM Uncached Bandwidth Consumed Percentage |Percent |Average |Percentage of uncached disk bandwidth consumed by the VM. Only available on VM series that support premium storage. |No Dimensions | -|VM Uncached IOPS Consumed Percentage |Yes |VM Uncached IOPS Consumed Percentage |Percent |Average |Percentage of uncached disk IOPS consumed by the VM. Only available on VM series that support premium storage. |No Dimensions | -|VmAvailabilityMetric |Yes |VM Availability Metric (Preview) |Count |Average |Measure of Availability of Virtual machines over time. |No Dimensions | --## Microsoft.Compute/virtualmachineScaleSets -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Available Memory Bytes |Yes |Available Memory Bytes (Preview) |Bytes |Average |Amount of physical memory, in bytes, immediately available for allocation to a process or for system use in the Virtual Machine |VMName | -|CPU Credits Consumed |Yes |CPU Credits Consumed |Count |Average |Total number of credits consumed by the Virtual Machine. Only available on B-series burstable VMs |No Dimensions | -|CPU Credits Remaining |Yes |CPU Credits Remaining |Count |Average |Total number of credits available to burst. Only available on B-series burstable VMs |No Dimensions | -|Data Disk Bandwidth Consumed Percentage |Yes |Data Disk Bandwidth Consumed Percentage |Percent |Average |Percentage of data disk bandwidth consumed per minute |LUN, VMName | -|Data Disk IOPS Consumed Percentage |Yes |Data Disk IOPS Consumed Percentage |Percent |Average |Percentage of data disk I/Os consumed per minute |LUN, VMName | -|Data Disk Max Burst Bandwidth |Yes |Data Disk Max Burst Bandwidth |Count |Average |Maximum bytes per second throughput Data Disk can achieve with bursting |LUN, VMName | -|Data Disk Max Burst IOPS |Yes |Data Disk Max Burst IOPS |Count |Average |Maximum IOPS Data Disk can achieve with bursting |LUN, VMName | -|Data Disk Queue Depth |Yes |Data Disk Queue Depth |Count |Average |Data Disk Queue Depth(or Queue Length) |LUN, VMName | -|Data Disk Read Bytes/sec |Yes |Data Disk Read Bytes/Sec |BytesPerSecond |Average |Bytes/Sec read from a single disk during monitoring period |LUN, VMName | -|Data Disk Read Operations/Sec |Yes |Data Disk Read Operations/Sec |CountPerSecond |Average |Read IOPS from a single disk during monitoring period |LUN, VMName | -|Data Disk Target Bandwidth |Yes |Data Disk Target Bandwidth |Count |Average |Baseline bytes per second throughput Data Disk can achieve without bursting |LUN, VMName | -|Data Disk Target IOPS |Yes |Data Disk Target IOPS |Count |Average |Baseline IOPS Data Disk can achieve without bursting |LUN, VMName | -|Data Disk Used Burst BPS Credits Percentage |Yes |Data Disk Used Burst BPS Credits Percentage |Percent |Average |Percentage of Data Disk burst bandwidth credits used so far |LUN, VMName | -|Data Disk Used Burst IO Credits Percentage |Yes |Data Disk Used Burst IO Credits Percentage |Percent |Average |Percentage of Data Disk burst I/O credits used so far |LUN, VMName | -|Data Disk Write Bytes/sec |Yes |Data Disk Write Bytes/Sec |BytesPerSecond |Average |Bytes/Sec written to a single disk during monitoring period |LUN, VMName | -|Data Disk Write Operations/Sec |Yes |Data Disk Write Operations/Sec |CountPerSecond |Average |Write IOPS from a single disk during monitoring period |LUN, VMName | -|Disk Read Bytes |Yes |Disk Read Bytes |Bytes |Total |Bytes read from disk during monitoring period |VMName | -|Disk Read Operations/Sec |Yes |Disk Read Operations/Sec |CountPerSecond |Average |Disk Read IOPS |VMName | -|Disk Write Bytes |Yes |Disk Write Bytes |Bytes |Total |Bytes written to disk during monitoring period |VMName | -|Disk Write Operations/Sec |Yes |Disk Write Operations/Sec |CountPerSecond |Average |Disk Write IOPS |VMName | -|Inbound Flows |Yes |Inbound Flows |Count |Average |Inbound Flows are number of current flows in the inbound direction (traffic going into the VM) |VMName | -|Inbound Flows Maximum Creation Rate |Yes |Inbound Flows Maximum Creation Rate |CountPerSecond |Average |The maximum creation rate of inbound flows (traffic going into the VM) |VMName | -|Network In |Yes |Network In Billable (Deprecated) |Bytes |Total |The number of billable bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic) (Deprecated) |VMName | -|Network In Total |Yes |Network In Total |Bytes |Total |The number of bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic) |VMName | -|Network Out |Yes |Network Out Billable (Deprecated) |Bytes |Total |The number of billable bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic) (Deprecated) |VMName | -|Network Out Total |Yes |Network Out Total |Bytes |Total |The number of bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic) |VMName | -|OS Disk Bandwidth Consumed Percentage |Yes |OS Disk Bandwidth Consumed Percentage |Percent |Average |Percentage of operating system disk bandwidth consumed per minute |LUN, VMName | -|OS Disk IOPS Consumed Percentage |Yes |OS Disk IOPS Consumed Percentage |Percent |Average |Percentage of operating system disk I/Os consumed per minute |LUN, VMName | -|OS Disk Max Burst Bandwidth |Yes |OS Disk Max Burst Bandwidth |Count |Average |Maximum bytes per second throughput OS Disk can achieve with bursting |LUN, VMName | -|OS Disk Max Burst IOPS |Yes |OS Disk Max Burst IOPS |Count |Average |Maximum IOPS OS Disk can achieve with bursting |LUN, VMName | -|OS Disk Queue Depth |Yes |OS Disk Queue Depth |Count |Average |OS Disk Queue Depth(or Queue Length) |VMName | -|OS Disk Read Bytes/sec |Yes |OS Disk Read Bytes/Sec |BytesPerSecond |Average |Bytes/Sec read from a single disk during monitoring period for OS disk |VMName | -|OS Disk Read Operations/Sec |Yes |OS Disk Read Operations/Sec |CountPerSecond |Average |Read IOPS from a single disk during monitoring period for OS disk |VMName | -|OS Disk Target Bandwidth |Yes |OS Disk Target Bandwidth |Count |Average |Baseline bytes per second throughput OS Disk can achieve without bursting |LUN, VMName | -|OS Disk Target IOPS |Yes |OS Disk Target IOPS |Count |Average |Baseline IOPS OS Disk can achieve without bursting |LUN, VMName | -|OS Disk Used Burst BPS Credits Percentage |Yes |OS Disk Used Burst BPS Credits Percentage |Percent |Average |Percentage of OS Disk burst bandwidth credits used so far |LUN, VMName | -|OS Disk Used Burst IO Credits Percentage |Yes |OS Disk Used Burst IO Credits Percentage |Percent |Average |Percentage of OS Disk burst I/O credits used so far |LUN, VMName | -|OS Disk Write Bytes/sec |Yes |OS Disk Write Bytes/Sec |BytesPerSecond |Average |Bytes/Sec written to a single disk during monitoring period for OS disk |VMName | -|OS Disk Write Operations/Sec |Yes |OS Disk Write Operations/Sec |CountPerSecond |Average |Write IOPS from a single disk during monitoring period for OS disk |VMName | -|Outbound Flows |Yes |Outbound Flows |Count |Average |Outbound Flows are number of current flows in the outbound direction (traffic going out of the VM) |VMName | -|Outbound Flows Maximum Creation Rate |Yes |Outbound Flows Maximum Creation Rate |CountPerSecond |Average |The maximum creation rate of outbound flows (traffic going out of the VM) |VMName | -|Percentage CPU |Yes |Percentage CPU |Percent |Average |The percentage of allocated compute units that are currently in use by the Virtual Machine(s) |VMName | -|Premium Data Disk Cache Read Hit |Yes |Premium Data Disk Cache Read Hit |Percent |Average |Premium Data Disk Cache Read Hit |LUN, VMName | -|Premium Data Disk Cache Read Miss |Yes |Premium Data Disk Cache Read Miss |Percent |Average |Premium Data Disk Cache Read Miss |LUN, VMName | -|Premium OS Disk Cache Read Hit |Yes |Premium OS Disk Cache Read Hit |Percent |Average |Premium OS Disk Cache Read Hit |VMName | -|Premium OS Disk Cache Read Miss |Yes |Premium OS Disk Cache Read Miss |Percent |Average |Premium OS Disk Cache Read Miss |VMName | -|VM Cached Bandwidth Consumed Percentage |Yes |VM Cached Bandwidth Consumed Percentage |Percent |Average |Percentage of cached disk bandwidth consumed by the VM |VMName | -|VM Cached IOPS Consumed Percentage |Yes |VM Cached IOPS Consumed Percentage |Percent |Average |Percentage of cached disk IOPS consumed by the VM |VMName | -|VM Local Used Burst BPS Credits Percentage |Yes |VM Cached Used Burst BPS Credits Percentage |Percent |Average |Percentage of Cached Burst BPS Credits used by the VM. |VMName | -|VM Local Used Burst IO Credits Percentage |Yes |VM Cached Used Burst IO Credits Percentage |Percent |Average |Percentage of Cached Burst IO Credits used by the VM. |VMName | -|VM Remote Used Burst BPS Credits Percentage |Yes |VM Uncached Used Burst BPS Credits Percentage |Percent |Average |Percentage of Uncached Burst BPS Credits used by the VM. |VMName | -|VM Remote Used Burst IO Credits Percentage |Yes |VM Uncached Used Burst IO Credits Percentage |Percent |Average |Percentage of Uncached Burst IO Credits used by the VM. |VMName | -|VM Uncached Bandwidth Consumed Percentage |Yes |VM Uncached Bandwidth Consumed Percentage |Percent |Average |Percentage of uncached disk bandwidth consumed by the VM |VMName | -|VM Uncached IOPS Consumed Percentage |Yes |VM Uncached IOPS Consumed Percentage |Percent |Average |Percentage of uncached disk IOPS consumed by the VM |VMName | -|VmAvailabilityMetric |Yes |VM Availability Metric (Preview) |Count |Average |Measure of Availability of Virtual machines over time. |VMName | --## Microsoft.Compute/virtualMachineScaleSets/virtualMachines -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Available Memory Bytes |Yes |Available Memory Bytes (Preview) |Bytes |Average |Amount of physical memory, in bytes, immediately available for allocation to a process or for system use in the Virtual Machine |No Dimensions | -|CPU Credits Consumed |Yes |CPU Credits Consumed |Count |Average |Total number of credits consumed by the Virtual Machine. Only available on B-series burstable VMs |No Dimensions | -|CPU Credits Remaining |Yes |CPU Credits Remaining |Count |Average |Total number of credits available to burst. Only available on B-series burstable VMs |No Dimensions | -|Data Disk Bandwidth Consumed Percentage |Yes |Data Disk Bandwidth Consumed Percentage |Percent |Average |Percentage of data disk bandwidth consumed per minute |LUN | -|Data Disk IOPS Consumed Percentage |Yes |Data Disk IOPS Consumed Percentage |Percent |Average |Percentage of data disk I/Os consumed per minute |LUN | -|Data Disk Max Burst Bandwidth |Yes |Data Disk Max Burst Bandwidth |Count |Average |Maximum bytes per second throughput Data Disk can achieve with bursting |LUN | -|Data Disk Max Burst IOPS |Yes |Data Disk Max Burst IOPS |Count |Average |Maximum IOPS Data Disk can achieve with bursting |LUN | -|Data Disk Queue Depth |Yes |Data Disk Queue Depth |Count |Average |Data Disk Queue Depth(or Queue Length) |LUN | -|Data Disk Read Bytes/sec |Yes |Data Disk Read Bytes/Sec |BytesPerSecond |Average |Bytes/Sec read from a single disk during monitoring period |LUN | -|Data Disk Read Operations/Sec |Yes |Data Disk Read Operations/Sec |CountPerSecond |Average |Read IOPS from a single disk during monitoring period |LUN | -|Data Disk Target Bandwidth |Yes |Data Disk Target Bandwidth |Count |Average |Baseline bytes per second throughput Data Disk can achieve without bursting |LUN | -|Data Disk Target IOPS |Yes |Data Disk Target IOPS |Count |Average |Baseline IOPS Data Disk can achieve without bursting |LUN | -|Data Disk Used Burst BPS Credits Percentage |Yes |Data Disk Used Burst BPS Credits Percentage |Percent |Average |Percentage of Data Disk burst bandwidth credits used so far |LUN | -|Data Disk Used Burst IO Credits Percentage |Yes |Data Disk Used Burst IO Credits Percentage |Percent |Average |Percentage of Data Disk burst I/O credits used so far |LUN | -|Data Disk Write Bytes/sec |Yes |Data Disk Write Bytes/Sec |BytesPerSecond |Average |Bytes/Sec written to a single disk during monitoring period |LUN | -|Data Disk Write Operations/Sec |Yes |Data Disk Write Operations/Sec |CountPerSecond |Average |Write IOPS from a single disk during monitoring period |LUN | -|Disk Read Bytes |Yes |Disk Read Bytes |Bytes |Total |Bytes read from disk during monitoring period |No Dimensions | -|Disk Read Operations/Sec |Yes |Disk Read Operations/Sec |CountPerSecond |Average |Disk Read IOPS |No Dimensions | -|Disk Write Bytes |Yes |Disk Write Bytes |Bytes |Total |Bytes written to disk during monitoring period |No Dimensions | -|Disk Write Operations/Sec |Yes |Disk Write Operations/Sec |CountPerSecond |Average |Disk Write IOPS |No Dimensions | -|Inbound Flows |Yes |Inbound Flows |Count |Average |Inbound Flows are number of current flows in the inbound direction (traffic going into the VM) |No Dimensions | -|Inbound Flows Maximum Creation Rate |Yes |Inbound Flows Maximum Creation Rate |CountPerSecond |Average |The maximum creation rate of inbound flows (traffic going into the VM) |No Dimensions | -|Network In |Yes |Network In Billable (Deprecated) |Bytes |Total |The number of billable bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic) (Deprecated) |No Dimensions | -|Network In Total |Yes |Network In Total |Bytes |Total |The number of bytes received on all network interfaces by the Virtual Machine(s) (Incoming Traffic) |No Dimensions | -|Network Out |Yes |Network Out Billable (Deprecated) |Bytes |Total |The number of billable bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic) (Deprecated) |No Dimensions | -|Network Out Total |Yes |Network Out Total |Bytes |Total |The number of bytes out on all network interfaces by the Virtual Machine(s) (Outgoing Traffic) |No Dimensions | -|OS Disk Bandwidth Consumed Percentage |Yes |OS Disk Bandwidth Consumed Percentage |Percent |Average |Percentage of operating system disk bandwidth consumed per minute |LUN | -|OS Disk IOPS Consumed Percentage |Yes |OS Disk IOPS Consumed Percentage |Percent |Average |Percentage of operating system disk I/Os consumed per minute |LUN | -|OS Disk Max Burst Bandwidth |Yes |OS Disk Max Burst Bandwidth |Count |Average |Maximum bytes per second throughput OS Disk can achieve with bursting |LUN | -|OS Disk Max Burst IOPS |Yes |OS Disk Max Burst IOPS |Count |Average |Maximum IOPS OS Disk can achieve with bursting |LUN | -|OS Disk Queue Depth |Yes |OS Disk Queue Depth |Count |Average |OS Disk Queue Depth(or Queue Length) |No Dimensions | -|OS Disk Read Bytes/sec |Yes |OS Disk Read Bytes/Sec |BytesPerSecond |Average |Bytes/Sec read from a single disk during monitoring period for OS disk |No Dimensions | -|OS Disk Read Operations/Sec |Yes |OS Disk Read Operations/Sec |CountPerSecond |Average |Read IOPS from a single disk during monitoring period for OS disk |No Dimensions | -|OS Disk Target Bandwidth |Yes |OS Disk Target Bandwidth |Count |Average |Baseline bytes per second throughput OS Disk can achieve without bursting |LUN | -|OS Disk Target IOPS |Yes |OS Disk Target IOPS |Count |Average |Baseline IOPS OS Disk can achieve without bursting |LUN | -|OS Disk Used Burst BPS Credits Percentage |Yes |OS Disk Used Burst BPS Credits Percentage |Percent |Average |Percentage of OS Disk burst bandwidth credits used so far |LUN | -|OS Disk Used Burst IO Credits Percentage |Yes |OS Disk Used Burst IO Credits Percentage |Percent |Average |Percentage of OS Disk burst I/O credits used so far |LUN | -|OS Disk Write Bytes/sec |Yes |OS Disk Write Bytes/Sec |BytesPerSecond |Average |Bytes/Sec written to a single disk during monitoring period for OS disk |No Dimensions | -|OS Disk Write Operations/Sec |Yes |OS Disk Write Operations/Sec |CountPerSecond |Average |Write IOPS from a single disk during monitoring period for OS disk |No Dimensions | -|Outbound Flows |Yes |Outbound Flows |Count |Average |Outbound Flows are number of current flows in the outbound direction (traffic going out of the VM) |No Dimensions | -|Outbound Flows Maximum Creation Rate |Yes |Outbound Flows Maximum Creation Rate |CountPerSecond |Average |The maximum creation rate of outbound flows (traffic going out of the VM) |No Dimensions | -|Percentage CPU |Yes |Percentage CPU |Percent |Average |The percentage of allocated compute units that are currently in use by the Virtual Machine(s) |No Dimensions | -|Premium Data Disk Cache Read Hit |Yes |Premium Data Disk Cache Read Hit |Percent |Average |Premium Data Disk Cache Read Hit |LUN | -|Premium Data Disk Cache Read Miss |Yes |Premium Data Disk Cache Read Miss |Percent |Average |Premium Data Disk Cache Read Miss |LUN | -|Premium OS Disk Cache Read Hit |Yes |Premium OS Disk Cache Read Hit |Percent |Average |Premium OS Disk Cache Read Hit |No Dimensions | -|Premium OS Disk Cache Read Miss |Yes |Premium OS Disk Cache Read Miss |Percent |Average |Premium OS Disk Cache Read Miss |No Dimensions | -|VM Cached Bandwidth Consumed Percentage |Yes |VM Cached Bandwidth Consumed Percentage |Percent |Average |Percentage of cached disk bandwidth consumed by the VM |No Dimensions | -|VM Cached IOPS Consumed Percentage |Yes |VM Cached IOPS Consumed Percentage |Percent |Average |Percentage of cached disk IOPS consumed by the VM |No Dimensions | -|VM Uncached Bandwidth Consumed Percentage |Yes |VM Uncached Bandwidth Consumed Percentage |Percent |Average |Percentage of uncached disk bandwidth consumed by the VM |No Dimensions | -|VM Uncached IOPS Consumed Percentage |Yes |VM Uncached IOPS Consumed Percentage |Percent |Average |Percentage of uncached disk IOPS consumed by the VM |No Dimensions | --## Microsoft.ConnectedCache/CacheNodes -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|egressbps |Yes |Egress Mbps |BitsPerSecond |Average |Egress Throughput |cachenodeid | -|hitRatio |Yes |Cache Efficiency |Percent |Average |Cache Efficiency |cachenodeid | -|hits |Yes |Hits |Count |Count |Count of hits |cachenodeid | -|hitsbps |Yes |Hit Mbps |BitsPerSecond |Average |Hit Throughput |cachenodeid | -|misses |Yes |Misses |Count |Count |Count of misses |cachenodeid | -|missesbps |Yes |Miss Mbps |BitsPerSecond |Average |Miss Throughput |cachenodeid | --## Microsoft.ConnectedCache/ispCustomers -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|egressbps |Yes |Egress Mbps |BitsPerSecond |Average |Egress Throughput |cachenodeid | -|hitRatio |Yes |Hit Ratio |Percent |Average |Cache hit ratio is a measurement of how many content requests a cache is able to fill successfully, compared to how many requests it receives. |cachenodeid | -|hits |Yes |Hits |Count |Count |Count of hits |cachenodeid | -|hitsbps |Yes |Hit Mbps |BitsPerSecond |Average |Hit Throughput |cachenodeid | -|inboundbps |Yes |Inbound |BitsPerSecond |Average |Inbound Throughput |cachenodeid | -|misses |Yes |Misses |Count |Count |Count of misses |cachenodeid | -|missesbps |Yes |Miss Mbps |BitsPerSecond |Average |Miss Throughput |cachenodeid | -|outboundbps |Yes |Outbound |BitsPerSecond |Average |Outbound Throughput |cachenodeid | --## Microsoft.ConnectedVehicle/platformAccounts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ClaimsProviderRequestLatency |Yes |Claims request execution time |Milliseconds |Average |The average execution time of requests to the customer claims provider endpoint in milliseconds. |IsSuccessful, FailureCategory | -|ClaimsProviderRequests |Yes |Claims provider requests |Count |Total |Number of requests to claims provider |IsSuccessful, FailureCategory | -|ConnectionServiceRequestRuntime |Yes |Vehicle connection service request execution time |Milliseconds |Average |Vehicle conneciton request execution time average in milliseconds |IsSuccessful, FailureCategory | -|ConnectionServiceRequests |Yes |Vehicle connection service requests |Count |Total |Total number of vehicle connection requests |IsSuccessful, FailureCategory | -|DataPipelineMessageCount |Yes |Data pipeline message count |Count |Total |The total number of messages sent to the MCVP data pipeline for storage. |IsSuccessful, FailureCategory | -|ExtensionInvocationCount |Yes |Extension invocation count |Count |Total |Total number of times an extension was called. |ExtensionName, IsSuccessful, FailureCategory | -|ExtensionInvocationRuntime |Yes |Extension invocation execution time |Milliseconds |Average |Average execution time spent inside an extension in milliseconds. |ExtensionName, IsSuccessful, FailureCategory | -|MessagesInCount |Yes |Messages received count |Count |Total |The total number of vehicle-sourced publishes. |IsSuccessful, FailureCategory | -|MessagesOutCount |Yes |Messages sent count |Count |Total |The total number of cloud-sourced publishes. |IsSuccessful, FailureCategory | -|ProvisionerServiceRequestRuntime |Yes |Vehicle provision execution time |Milliseconds |Average |The average execution time of vehicle provision requests in milliseconds |IsSuccessful, FailureCategory | -|ProvisionerServiceRequests |Yes |Vehicle provision service requests |Count |Total |Total number of vehicle provision requests |IsSuccessful, FailureCategory | -|StateStoreReadRequestLatency |Yes |State store read execution time |Milliseconds |Average |State store read request execution time average in milliseconds. |ExtensionName, IsSuccessful, FailureCategory | -|StateStoreReadRequests |Yes |State store read requests |Count |Total |Number of read requests to state store |ExtensionName, IsSuccessful, FailureCategory | -|StateStoreWriteRequestLatency |Yes |State store write execution time |Milliseconds |Average |State store write request execution time average in milliseconds. |ExtensionName, IsSuccessful, FailureCategory | -|StateStoreWriteRequests |Yes |State store write requests |Count |Total |Number of write requests to state store |ExtensionName, IsSuccessful, FailureCategory | --## Microsoft.ContainerInstance/containerGroups -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|CpuUsage |Yes |CPU Usage |Count |Average |CPU usage on all cores in millicores. |containerName | -|MemoryUsage |Yes |Memory Usage |Bytes |Average |Total memory usage in byte. |containerName | -|NetworkBytesReceivedPerSecond |Yes |Network Bytes Received Per Second |Bytes |Average |The network bytes received per second. |No Dimensions | -|NetworkBytesTransmittedPerSecond |Yes |Network Bytes Transmitted Per Second |Bytes |Average |The network bytes transmitted per second. |No Dimensions | --## Microsoft.ContainerRegistry/registries -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AgentPoolCPUTime |Yes |AgentPool CPU Time |Seconds |Total |AgentPool CPU Time in seconds |No Dimensions | -|RunDuration |Yes |Run Duration |MilliSeconds |Total |Run Duration in milliseconds |No Dimensions | -|StorageUsed |Yes |Storage used |Bytes |Average |The amount of storage used by the container registry. For a registry account, it's the sum of capacity used by all the repositories within a registry. It's sum of capacity used by shared layers, manifest files, and replica copies in each of its repositories. |Geolocation | -|SuccessfulPullCount |Yes |Successful Pull Count |Count |Total |Number of successful image pulls |No Dimensions | -|SuccessfulPushCount |Yes |Successful Push Count |Count |Total |Number of successful image pushes |No Dimensions | -|TotalPullCount |Yes |Total Pull Count |Count |Total |Number of image pulls in total |No Dimensions | -|TotalPushCount |Yes |Total Push Count |Count |Total |Number of image pushes in total |No Dimensions | --## Microsoft.ContainerService/managedClusters -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|apiserver_current_inflight_requests |No |Inflight Requests |Count |Average |Maximum number of currently used inflight requests on the apiserver per request kind in the last second |requestKind | -|cluster_autoscaler_cluster_safe_to_autoscale |No |Cluster Health |Count |Average |Determines whether or not cluster autoscaler will take action on the cluster |No Dimensions | -|cluster_autoscaler_scale_down_in_cooldown |No |Scale Down Cooldown |Count |Average |Determines if the scale down is in cooldown - No nodes will be removed during this timeframe |No Dimensions | -|cluster_autoscaler_unneeded_nodes_count |No |Unneeded Nodes |Count |Average |Cluster auotscaler marks those nodes as candidates for deletion and are eventually deleted |No Dimensions | -|cluster_autoscaler_unschedulable_pods_count |No |Unschedulable Pods |Count |Average |Number of pods that are currently unschedulable in the cluster |No Dimensions | -|kube_node_status_allocatable_cpu_cores |No |Total number of available cpu cores in a managed cluster |Count |Average |Total number of available cpu cores in a managed cluster |No Dimensions | -|kube_node_status_allocatable_memory_bytes |No |Total amount of available memory in a managed cluster |Bytes |Average |Total amount of available memory in a managed cluster |No Dimensions | -|kube_node_status_condition |No |Statuses for various node conditions |Count |Average |Statuses for various node conditions |condition, status, status2, node | -|kube_pod_status_phase |No |Number of pods by phase |Count |Average |Number of pods by phase |phase, namespace, pod | -|kube_pod_status_ready |No |Number of pods in Ready state |Count |Average |Number of pods in Ready state |namespace, pod, condition | -|node_cpu_usage_millicores |Yes |CPU Usage Millicores |MilliCores |Average |Aggregated measurement of CPU utilization in millicores across the cluster |node, nodepool | -|node_cpu_usage_percentage |Yes |CPU Usage Percentage |Percent |Average |Aggregated average CPU utilization measured in percentage across the cluster |node, nodepool | -|node_disk_usage_bytes |Yes |Disk Used Bytes |Bytes |Average |Disk space used in bytes by device |node, nodepool, device | -|node_disk_usage_percentage |Yes |Disk Used Percentage |Percent |Average |Disk space used in percent by device |node, nodepool, device | -|node_memory_rss_bytes |Yes |Memory RSS Bytes |Bytes |Average |Container RSS memory used in bytes |node, nodepool | -|node_memory_rss_percentage |Yes |Memory RSS Percentage |Percent |Average |Container RSS memory used in percent |node, nodepool | -|node_memory_working_set_bytes |Yes |Memory Working Set Bytes |Bytes |Average |Container working set memory used in bytes |node, nodepool | -|node_memory_working_set_percentage |Yes |Memory Working Set Percentage |Percent |Average |Container working set memory used in percent |node, nodepool | -|node_network_in_bytes |Yes |Network In Bytes |Bytes |Average |Network received bytes |node, nodepool | -|node_network_out_bytes |Yes |Network Out Bytes |Bytes |Average |Network transmitted bytes |node, nodepool | --## Microsoft.CustomProviders/resourceproviders -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|FailedRequests |Yes |Failed Requests |Count |Total |Gets the available logs for Custom Resource Providers |HttpMethod, CallPath, StatusCode | -|SuccessfullRequests |Yes |Successful Requests |Count |Total |Successful requests made by the custom provider |HttpMethod, CallPath, StatusCode | --## Microsoft.Dashboard/grafana -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|HttpRequestCount |No |HttpRequestCount |Count |Count |Number of HTTP requests to Azure Managed Grafana server |No Dimensions | --## Microsoft.DataBoxEdge/dataBoxEdgeDevices -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AvailableCapacity |Yes |Available Capacity |Bytes |Average |The available capacity in bytes during the reporting period. |No Dimensions | -|BytesUploadedToCloud |Yes |Cloud Bytes Uploaded (Device) |Bytes |Average |The total number of bytes that is uploaded to Azure from a device during the reporting period. |No Dimensions | -|BytesUploadedToCloudPerShare |Yes |Cloud Bytes Uploaded (Share) |Bytes |Average |The total number of bytes that is uploaded to Azure from a share during the reporting period. |Share | -|CloudReadThroughput |Yes |Cloud Download Throughput |BytesPerSecond |Average |The cloud download throughput to Azure during the reporting period. |No Dimensions | -|CloudReadThroughputPerShare |Yes |Cloud Download Throughput (Share) |BytesPerSecond |Average |The download throughput to Azure from a share during the reporting period. |Share | -|CloudUploadThroughput |Yes |Cloud Upload Throughput |BytesPerSecond |Average |The cloud upload throughput to Azure during the reporting period. |No Dimensions | -|CloudUploadThroughputPerShare |Yes |Cloud Upload Throughput (Share) |BytesPerSecond |Average |The upload throughput to Azure from a share during the reporting period. |Share | -|HyperVMemoryUtilization |Yes |Edge Compute - Memory Usage |Percent |Average |Amount of RAM in Use |InstanceName | -|HyperVVirtualProcessorUtilization |Yes |Edge Compute - Percentage CPU |Percent |Average |Percent CPU Usage |InstanceName | -|NICReadThroughput |Yes |Read Throughput (Network) |BytesPerSecond |Average |The read throughput of the network interface on the device in the reporting period for all volumes in the gateway. |InstanceName | -|NICWriteThroughput |Yes |Write Throughput (Network) |BytesPerSecond |Average |The write throughput of the network interface on the device in the reporting period for all volumes in the gateway. |InstanceName | -|TotalCapacity |Yes |Total Capacity |Bytes |Average |The total capacity of the device in bytes during the reporting period. |No Dimensions | --## Microsoft.DataCollaboration/workspaces -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ComputationCount |Yes |Created Computations |Count |Maximum |Number of created computations |ComputationName | -|DataAssetCount |Yes |Created Data Assets |Count |Maximum |Number of created data assets |DataAssetName | -|PipelineCount |Yes |Created Pipelines |Count |Maximum |Number of created pipelines |PipelineName | -|PipelineCount |Yes |Created Pipelines |Count |Maximum |Number of created pipelines |PipelineName | -|ProposalCount |Yes |Created Proposals |Count |Maximum |Number of created proposals |ProposalName | -|ScriptCount |Yes |Created Scripts |Count |Maximum |Number of created scripts |ScriptName | --## Microsoft.DataFactory/datafactories -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|FailedRuns |Yes |Failed Runs |Count |Total |Failed Runs |pipelineName, activityName | -|SuccessfulRuns |Yes |Successful Runs |Count |Total |Successful Runs |pipelineName, activityName | --## Microsoft.DataFactory/factories -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ActivityCancelledRuns |Yes |Cancelled activity runs metrics |Count |Total |Cancelled activity runs metrics |ActivityType, PipelineName, FailureType, Name | -|ActivityFailedRuns |Yes |Failed activity runs metrics |Count |Total |Failed activity runs metrics |ActivityType, PipelineName, FailureType, Name | -|ActivitySucceededRuns |Yes |Succeeded activity runs metrics |Count |Total |Succeeded activity runs metrics |ActivityType, PipelineName, FailureType, Name | -|AirflowIntegrationRuntimeCeleryTaskTimeoutError |No |Airflow Integration Runtime Celery Task Timeout Error |Count |Total |Airflow Integration Runtime Celery Task Timeout Error |IntegrationRuntimeName | -|AirflowIntegrationRuntimeCollectDBDags |No |Airflow Integration Runtime Collect DB Dags |Milliseconds |Average |Airflow Integration Runtime Collect DB Dags |IntegrationRuntimeName | -|AirflowIntegrationRuntimeCpuPercentage |No |Airflow Integration Runtime Cpu Percentage |Percent |Average |Airflow Integration Runtime Cpu Percentage |IntegrationRuntimeName, ContainerName | -|AirflowIntegrationRuntimeCpuUsage |Yes |Airflow Integration Runtime Memory Usage |Millicores |Average |Airflow Integration Runtime Memory Usage |IntegrationRuntimeName, ContainerName | -|AirflowIntegrationRuntimeDagBagSize |No |Airflow Integration Runtime Dag Bag Size |Count |Total |Airflow Integration Runtime Dag Bag Size |IntegrationRuntimeName | -|AirflowIntegrationRuntimeDagCallbackExceptions |No |Airflow Integration Runtime Dag Callback Exceptions |Count |Total |Airflow Integration Runtime Dag Callback Exceptions |IntegrationRuntimeName | -|AirflowIntegrationRuntimeDAGFileRefreshError |No |Airflow Integration Runtime DAG File Refresh Error |Count |Total |Airflow Integration Runtime DAG File Refresh Error |IntegrationRuntimeName | -|AirflowIntegrationRuntimeDAGProcessingImportErrors |No |Airflow Integration Runtime DAG Processing Import Errors |Count |Total |Airflow Integration Runtime DAG Processing Import Errors |IntegrationRuntimeName | -|AirflowIntegrationRuntimeDAGProcessingLastDuration |No |Airflow Integration Runtime DAG Processing Last Duration |Milliseconds |Average |Airflow Integration Runtime DAG Processing Last Duration |IntegrationRuntimeName, DagFile | -|AirflowIntegrationRuntimeDAGProcessingLastRunSecondsAgo |No |Airflow Integration Runtime DAG Processing Last Run Seconds Ago |Seconds |Average |Airflow Integration Runtime DAG Processing Last Run Seconds Ago |IntegrationRuntimeName, DagFile | -|AirflowIntegrationRuntimeDAGProcessingManagerStalls |No |Airflow Integration Runtime DAG ProcessingManager Stalls |Count |Total |Airflow Integration Runtime DAG ProcessingManager Stalls |IntegrationRuntimeName | -|AirflowIntegrationRuntimeDAGProcessingProcesses |No |Airflow Integration Runtime DAG Processing Processes |Count |Total |Airflow Integration Runtime DAG Processing Processes |IntegrationRuntimeName | -|AirflowIntegrationRuntimeDAGProcessingProcessorTimeouts |No |Airflow Integration Runtime DAG Processing Processor Timeouts |Seconds |Average |Airflow Integration Runtime DAG Processing Processor Timeouts |IntegrationRuntimeName | -|AirflowIntegrationRuntimeDAGProcessingTotalParseTime |No |Airflow Integration Runtime DAG Processing Total Parse Time |Seconds |Average |Airflow Integration Runtime DAG Processing Total Parse Time |IntegrationRuntimeName | -|AirflowIntegrationRuntimeDAGRunDependencyCheck |No |Airflow Integration Runtime DAG Run Dependency Check |Milliseconds |Average |Airflow Integration Runtime DAG Run Dependency Check |IntegrationRuntimeName, DagId | -|AirflowIntegrationRuntimeDAGRunDurationFailed |No |Airflow Integration Runtime DAG Run Duration Failed |Milliseconds |Average |Airflow Integration Runtime DAG Run Duration Failed |IntegrationRuntimeName, DagId | -|AirflowIntegrationRuntimeDAGRunDurationSuccess |No |Airflow Integration Runtime DAG Run Duration Success |Milliseconds |Average |Airflow Integration Runtime DAG Run Duration Success |IntegrationRuntimeName, DagId | -|AirflowIntegrationRuntimeDAGRunFirstTaskSchedulingDelay |No |Airflow Integration Runtime DAG Run First Task Scheduling Delay |Milliseconds |Average |Airflow Integration Runtime DAG Run First Task Scheduling Delay |IntegrationRuntimeName, DagId | -|AirflowIntegrationRuntimeDAGRunScheduleDelay |No |Airflow Integration Runtime DAG Run Schedule Delay |Milliseconds |Average |Airflow Integration Runtime DAG Run Schedule Delay |IntegrationRuntimeName, DagId | -|AirflowIntegrationRuntimeExecutorOpenSlots |No |Airflow Integration Runtime Executor Open Slots |Count |Total |Airflow Integration Runtime Executor Open Slots |IntegrationRuntimeName | -|AirflowIntegrationRuntimeExecutorQueuedTasks |No |Airflow Integration Runtime Executor Queued Tasks |Count |Total |Airflow Integration Runtime Executor Queued Tasks |IntegrationRuntimeName | -|AirflowIntegrationRuntimeExecutorRunningTasks |No |Airflow Integration Runtime Executor Running Tasks |Count |Total |Airflow Integration Runtime Executor Running Tasks |IntegrationRuntimeName | -|AirflowIntegrationRuntimeJobEnd |No |Airflow Integration Runtime Job End |Count |Total |Airflow Integration Runtime Job End |IntegrationRuntimeName, Job | -|AirflowIntegrationRuntimeJobHeartbeatFailure |No |Airflow Integration Runtime Heartbeat Failure |Count |Total |Airflow Integration Runtime Heartbeat Failure |IntegrationRuntimeName, Job | -|AirflowIntegrationRuntimeJobStart |No |Airflow Integration Runtime Job Start |Count |Total |Airflow Integration Runtime Job Start |IntegrationRuntimeName, Job | -|AirflowIntegrationRuntimeMemoryPercentage |Yes |Airflow Integration Runtime Memory Percentage |Percent |Average |Airflow Integration Runtime Memory Percentage |IntegrationRuntimeName, ContainerName | -|AirflowIntegrationRuntimeOperatorFailures |No |Airflow Integration Runtime Operator Failures |Count |Total |Airflow Integration Runtime Operator Failures |IntegrationRuntimeName, Operator | -|AirflowIntegrationRuntimeOperatorSuccesses |No |Airflow Integration Runtime Operator Successes |Count |Total |Airflow Integration Runtime Operator Successes |IntegrationRuntimeName, Operator | -|AirflowIntegrationRuntimePoolOpenSlots |No |Airflow Integration Runtime Pool Open Slots |Count |Total |Airflow Integration Runtime Pool Open Slots |IntegrationRuntimeName, Pool | -|AirflowIntegrationRuntimePoolQueuedSlots |No |Airflow Integration Runtime Pool Queued Slots |Count |Total |Airflow Integration Runtime Pool Queued Slots |IntegrationRuntimeName, Pool | -|AirflowIntegrationRuntimePoolRunningSlots |No |Airflow Integration Runtime Pool Running Slots |Count |Total |Airflow Integration Runtime Pool Running Slots |IntegrationRuntimeName, Pool | -|AirflowIntegrationRuntimePoolStarvingTasks |No |Airflow Integration Runtime Pool Starving Tasks |Count |Total |Airflow Integration Runtime Pool Starving Tasks |IntegrationRuntimeName, Pool | -|AirflowIntegrationRuntimeSchedulerCriticalSectionBusy |No |Airflow Integration Runtime Scheduler Critical Section Busy |Count |Total |Airflow Integration Runtime Scheduler Critical Section Busy |IntegrationRuntimeName | -|AirflowIntegrationRuntimeSchedulerCriticalSectionDuration |No |Airflow Integration Runtime Scheduler Critical Section Duration |Milliseconds |Average |Airflow Integration Runtime Scheduler Critical Section Duration |IntegrationRuntimeName | -|AirflowIntegrationRuntimeSchedulerFailedSLAEmailAttempts |No |Airflow Integration Runtime Scheduler Failed SLA Email Attempts |Count |Total |Airflow Integration Runtime Scheduler Failed SLA Email Attempts |IntegrationRuntimeName | -|AirflowIntegrationRuntimeSchedulerHeartbeat |No |Airflow Integration Runtime Scheduler Heartbeats |Count |Total |Airflow Integration Runtime Scheduler Heartbeats |IntegrationRuntimeName | -|AirflowIntegrationRuntimeSchedulerOrphanedTasksAdopted |No |Airflow Integration Runtime Scheduler Orphaned Tasks Adopted |Count |Total |Airflow Integration Runtime Scheduler Orphaned Tasks Adopted |IntegrationRuntimeName | -|AirflowIntegrationRuntimeSchedulerOrphanedTasksCleared |No |Airflow Integration Runtime Scheduler Orphaned Tasks Cleared |Count |Total |Airflow Integration Runtime Scheduler Orphaned Tasks Cleared |IntegrationRuntimeName | -|AirflowIntegrationRuntimeSchedulerTasksExecutable |No |Airflow Integration Runtime Scheduler Tasks Executable |Count |Total |Airflow Integration Runtime Scheduler Tasks Executable |IntegrationRuntimeName | -|AirflowIntegrationRuntimeSchedulerTasksKilledExternally |No |Airflow Integration Runtime Scheduler Tasks Killed Externally |Count |Total |Airflow Integration Runtime Scheduler Tasks Killed Externally |IntegrationRuntimeName | -|AirflowIntegrationRuntimeSchedulerTasksRunning |No |Airflow Integration Runtime Scheduler Tasks Running |Count |Total |Airflow Integration Runtime Scheduler Tasks Running |IntegrationRuntimeName | -|AirflowIntegrationRuntimeSchedulerTasksStarving |No |Airflow Integration Runtime Scheduler Tasks Starving |Count |Total |Airflow Integration Runtime Scheduler Tasks Starving |IntegrationRuntimeName | -|AirflowIntegrationRuntimeStartedTaskInstances |No |Airflow Integration Runtime Started Task Instances |Count |Total |Airflow Integration Runtime Started Task Instances |IntegrationRuntimeName, DagId, TaskId | -|AirflowIntegrationRuntimeTaskInstanceCreatedUsingOperator |No |Airflow Integration Runtime Task Instance Created Using Operator |Count |Total |Airflow Integration Runtime Task Instance Created Using Operator |IntegrationRuntimeName, Operator | -|AirflowIntegrationRuntimeTaskInstanceDuration |No |Airflow Integration Runtime Task Instance Duration |Milliseconds |Average |Airflow Integration Runtime Task Instance Duration |IntegrationRuntimeName, DagId, TaskID | -|AirflowIntegrationRuntimeTaskInstanceFailures |No |Airflow Integration Runtime Task Instance Failures |Count |Total |Airflow Integration Runtime Task Instance Failures |IntegrationRuntimeName | -|AirflowIntegrationRuntimeTaskInstanceFinished |No |Airflow Integration Runtime Task Instance Finished |Count |Total |Airflow Integration Runtime Task Instance Finished |IntegrationRuntimeName, DagId, TaskId, State | -|AirflowIntegrationRuntimeTaskInstancePreviouslySucceeded |No |Airflow Integration Runtime Task Instance Previously Succeeded |Count |Total |Airflow Integration Runtime Task Instance Previously Succeeded |IntegrationRuntimeName | -|AirflowIntegrationRuntimeTaskInstanceSuccesses |No |Airflow Integration Runtime Task Instance Successes |Count |Total |Airflow Integration Runtime Task Instance Successes |IntegrationRuntimeName | -|AirflowIntegrationRuntimeTaskRemovedFromDAG |No |Airflow Integration Runtime Task Removed From DAG |Count |Total |Airflow Integration Runtime Task Removed From DAG |IntegrationRuntimeName, DagId | -|AirflowIntegrationRuntimeTaskRestoredToDAG |No |Airflow Integration Runtime Task Restored To DAG |Count |Total |Airflow Integration Runtime Task Restored To DAG |IntegrationRuntimeName, DagId | -|AirflowIntegrationRuntimeTriggersBlockedMainThread |No |Airflow Integration Runtime Triggers Blocked Main Thread |Count |Total |Airflow Integration Runtime Triggers Blocked Main Thread |IntegrationRuntimeName | -|AirflowIntegrationRuntimeTriggersFailed |No |Airflow Integration Runtime Triggers Failed |Count |Total |Airflow Integration Runtime Triggers Failed |IntegrationRuntimeName | -|AirflowIntegrationRuntimeTriggersRunning |No |Airflow Integration Runtime Triggers Running |Count |Total |Airflow Integration Runtime Triggers Running |IntegrationRuntimeName | -|AirflowIntegrationRuntimeTriggersSucceeded |No |Airflow Integration Runtime Triggers Succeeded |Count |Total |Airflow Integration Runtime Triggers Succeeded |IntegrationRuntimeName | -|AirflowIntegrationRuntimeZombiesKilled |No |Airflow Integration Runtime Zombie Tasks Killed |Count |Total |Airflow Integration Runtime Zombie Tasks Killed |IntegrationRuntimeName | -|FactorySizeInGbUnits |Yes |Total factory size (GB unit) |Count |Maximum |Total factory size (GB unit) |No Dimensions | -|IntegrationRuntimeAvailableMemory |Yes |Integration runtime available memory |Bytes |Average |Integration runtime available memory |IntegrationRuntimeName, NodeName | -|IntegrationRuntimeAvailableNodeNumber |Yes |Integration runtime available node count |Count |Average |Integration runtime available node count |IntegrationRuntimeName | -|IntegrationRuntimeAverageTaskPickupDelay |Yes |Integration runtime queue duration |Seconds |Average |Integration runtime queue duration |IntegrationRuntimeName | -|IntegrationRuntimeCpuPercentage |Yes |Integration runtime CPU utilization |Percent |Average |Integration runtime CPU utilization |IntegrationRuntimeName, NodeName | -|IntegrationRuntimeQueueLength |Yes |Integration runtime queue length |Count |Average |Integration runtime queue length |IntegrationRuntimeName | -|MaxAllowedFactorySizeInGbUnits |Yes |Maximum allowed factory size (GB unit) |Count |Maximum |Maximum allowed factory size (GB unit) |No Dimensions | -|MaxAllowedResourceCount |Yes |Maximum allowed entities count |Count |Maximum |Maximum allowed entities count |No Dimensions | -|PipelineCancelledRuns |Yes |Cancelled pipeline runs metrics |Count |Total |Cancelled pipeline runs metrics |FailureType, CancelledBy, Name | -|PipelineElapsedTimeRuns |Yes |Elapsed Time Pipeline Runs Metrics |Count |Total |Elapsed Time Pipeline Runs Metrics |RunId, Name | -|PipelineFailedRuns |Yes |Failed pipeline runs metrics |Count |Total |Failed pipeline runs metrics |FailureType, Name | -|PipelineSucceededRuns |Yes |Succeeded pipeline runs metrics |Count |Total |Succeeded pipeline runs metrics |FailureType, Name | -|ResourceCount |Yes |Total entities count |Count |Maximum |Total entities count |No Dimensions | -|SSISIntegrationRuntimeStartCancel |Yes |Cancelled SSIS integration runtime start metrics |Count |Total |Cancelled SSIS integration runtime start metrics |IntegrationRuntimeName | -|SSISIntegrationRuntimeStartFailed |Yes |Failed SSIS integration runtime start metrics |Count |Total |Failed SSIS integration runtime start metrics |IntegrationRuntimeName | -|SSISIntegrationRuntimeStartSucceeded |Yes |Succeeded SSIS integration runtime start metrics |Count |Total |Succeeded SSIS integration runtime start metrics |IntegrationRuntimeName | -|SSISIntegrationRuntimeStopStuck |Yes |Stuck SSIS integration runtime stop metrics |Count |Total |Stuck SSIS integration runtime stop metrics |IntegrationRuntimeName | -|SSISIntegrationRuntimeStopSucceeded |Yes |Succeeded SSIS integration runtime stop metrics |Count |Total |Succeeded SSIS integration runtime stop metrics |IntegrationRuntimeName | -|SSISPackageExecutionCancel |Yes |Cancelled SSIS package execution metrics |Count |Total |Cancelled SSIS package execution metrics |IntegrationRuntimeName | -|SSISPackageExecutionFailed |Yes |Failed SSIS package execution metrics |Count |Total |Failed SSIS package execution metrics |IntegrationRuntimeName | -|SSISPackageExecutionSucceeded |Yes |Succeeded SSIS package execution metrics |Count |Total |Succeeded SSIS package execution metrics |IntegrationRuntimeName | -|TriggerCancelledRuns |Yes |Cancelled trigger runs metrics |Count |Total |Cancelled trigger runs metrics |Name, FailureType | -|TriggerFailedRuns |Yes |Failed trigger runs metrics |Count |Total |Failed trigger runs metrics |Name, FailureType | -|TriggerSucceededRuns |Yes |Succeeded trigger runs metrics |Count |Total |Succeeded trigger runs metrics |Name, FailureType | --## Microsoft.DataLakeAnalytics/accounts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|JobAUEndedCancelled |Yes |Cancelled AU Time |Seconds |Total |Total AU time for cancelled jobs. |No Dimensions | -|JobAUEndedFailure |Yes |Failed AU Time |Seconds |Total |Total AU time for failed jobs. |No Dimensions | -|JobAUEndedSuccess |Yes |Successful AU Time |Seconds |Total |Total AU time for successful jobs. |No Dimensions | -|JobEndedCancelled |Yes |Cancelled Jobs |Count |Total |Count of cancelled jobs. |No Dimensions | -|JobEndedFailure |Yes |Failed Jobs |Count |Total |Count of failed jobs. |No Dimensions | -|JobEndedSuccess |Yes |Successful Jobs |Count |Total |Count of successful jobs. |No Dimensions | -|JobStage |Yes |Jobs in Stage |Count |Total |Number of jobs in each stage. |No Dimensions | --## Microsoft.DataLakeStore/accounts -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|DataRead |Yes |Data Read |Bytes |Total |Total amount of data read from the account. |No Dimensions | -|DataWritten |Yes |Data Written |Bytes |Total |Total amount of data written to the account. |No Dimensions | -|ReadRequests |Yes |Read Requests |Count |Total |Count of data read requests to the account. |No Dimensions | -|TotalStorage |Yes |Total Storage |Bytes |Maximum |Total amount of data stored in the account. |No Dimensions | -|WriteRequests |Yes |Write Requests |Count |Total |Count of data write requests to the account. |No Dimensions | --## Microsoft.DataProtection/BackupVaults -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BackupHealthEvent |Yes |Backup Health Events (preview) |Count |Count |The count of health events pertaining to backup job health |dataSourceURL, backupInstanceUrl, dataSourceType, healthStatus, backupInstanceName | -|RestoreHealthEvent |Yes |Restore Health Events (preview) |Count |Count |The count of health events pertaining to restore job health |dataSourceURL, backupInstanceUrl, dataSourceType, healthStatus, backupInstanceName | --## Microsoft.DataShare/accounts -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|FailedShareSubscriptionSynchronizations |Yes |Received Share Failed Snapshots |Count |Count |Number of received share failed snapshots in the account |No Dimensions | -|FailedShareSynchronizations |Yes |Sent Share Failed Snapshots |Count |Count |Number of sent share failed snapshots in the account |No Dimensions | -|ShareCount |Yes |Sent Shares |Count |Maximum |Number of sent shares in the account |ShareName | -|ShareSubscriptionCount |Yes |Received Shares |Count |Maximum |Number of received shares in the account |ShareSubscriptionName | -|SucceededShareSubscriptionSynchronizations |Yes |Received Share Succeeded Snapshots |Count |Count |Number of received share succeeded snapshots in the account |No Dimensions | -|SucceededShareSynchronizations |Yes |Sent Share Succeeded Snapshots |Count |Count |Number of sent share succeeded snapshots in the account |No Dimensions | --## Microsoft.DBforMariaDB/servers -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|active_connections |Yes |Active Connections |Count |Average |Active Connections |No Dimensions | -|backup_storage_used |Yes |Backup Storage used |Bytes |Average |Backup Storage used |No Dimensions | -|connections_failed |Yes |Failed Connections |Count |Total |Failed Connections |No Dimensions | -|cpu_percent |Yes |CPU percent |Percent |Average |CPU percent |No Dimensions | -|io_consumption_percent |Yes |IO percent |Percent |Average |IO percent |No Dimensions | -|memory_percent |Yes |Memory percent |Percent |Average |Memory percent |No Dimensions | -|network_bytes_egress |Yes |Network Out |Bytes |Total |Network Out across active connections |No Dimensions | -|network_bytes_ingress |Yes |Network In |Bytes |Total |Network In across active connections |No Dimensions | -|seconds_behind_master |Yes |Replication lag in seconds |Count |Maximum |Replication lag in seconds |No Dimensions | -|serverlog_storage_limit |Yes |Server Log storage limit |Bytes |Maximum |Server Log storage limit |No Dimensions | -|serverlog_storage_percent |Yes |Server Log storage percent |Percent |Average |Server Log storage percent |No Dimensions | -|serverlog_storage_usage |Yes |Server Log storage used |Bytes |Average |Server Log storage used |No Dimensions | -|storage_limit |Yes |Storage limit |Bytes |Maximum |Storage limit |No Dimensions | -|storage_percent |Yes |Storage percent |Percent |Average |Storage percent |No Dimensions | -|storage_used |Yes |Storage used |Bytes |Average |Storage used |No Dimensions | --## Microsoft.DBforMySQL/flexibleServers -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|aborted_connections |Yes |Aborted Connections |Count |Total |Aborted Connections |No Dimensions | -|active_connections |Yes |Active Connections |Count |Maximum |Active Connections |No Dimensions | -|backup_storage_used |Yes |Backup Storage Used |Bytes |Maximum |Backup Storage Used |No Dimensions | -|Com_alter_table |Yes |Com Alter Table |Count |Total |The number of times ALTER TABLE statement has been executed. |No Dimensions | -|Com_create_db |Yes |Com Create DB |Count |Total |The number of times CREATE DB statement has been executed. |No Dimensions | -|Com_create_table |Yes |Com Create Table |Count |Total |The number of times CREATE TABLE statement has been executed. |No Dimensions | -|Com_delete |Yes |Com Delete |Count |Total |The number of times DELETE statement has been executed. |No Dimensions | -|Com_drop_db |Yes |Com Drop DB |Count |Total |The number of times DROP DB statement has been executed. |No Dimensions | -|Com_drop_table |Yes |Com Drop Table |Count |Total |The number of times DROP TABLE statement has been executed. |No Dimensions | -|Com_insert |Yes |Com Insert |Count |Total |The number of times INSERT statement has been executed. |No Dimensions | -|Com_select |Yes |Com Select |Count |Total |The number of times SELECT statement has been executed. |No Dimensions | -|Com_update |Yes |Com Update |Count |Total |The number of times UPDATE statement has been executed. |No Dimensions | -|cpu_credits_consumed |Yes |CPU Credits Consumed |Count |Maximum |CPU Credits Consumed |No Dimensions | -|cpu_credits_remaining |Yes |CPU Credits Remaining |Count |Maximum |CPU Credits Remaining |No Dimensions | -|cpu_percent |Yes |Host CPU Percent |Percent |Maximum |Host CPU Percent |No Dimensions | -|HA_IO_status |Yes |HA IO Status |Count |Maximum |Status for replication IO thread running |No Dimensions | -|HA_replication_lag |Yes |HA Replication Lag |Seconds |Maximum |HA Replication lag in seconds |No Dimensions | -|HA_SQL_status |Yes |HA SQL Status |Count |Maximum |Status for replication SQL thread running |No Dimensions | -|Innodb_buffer_pool_pages_data |Yes |InnoDB Buffer Pool Pages Data |Count |Total |The number of pages in the InnoDB buffer pool containing data. |No Dimensions | -|Innodb_buffer_pool_pages_dirty |Yes |InnoDB Buffer Pool Pages Dirty |Count |Total |The current number of dirty pages in the InnoDB buffer pool. |No Dimensions | -|Innodb_buffer_pool_pages_free |Yes |InnoDB Buffer Pool Pages Free |Count |Total |The number of free pages in the InnoDB buffer pool. |No Dimensions | -|Innodb_buffer_pool_read_requests |Yes |InnoDB Buffer Pool Read Requests |Count |Total |The number of logical read requests. |No Dimensions | -|Innodb_buffer_pool_reads |Yes |InnoDB Buffer Pool Reads |Count |Total |The number of logical reads that InnoDB could not satisfy from the buffer pool, and had to read directly from disk. |No Dimensions | -|io_consumption_percent |Yes |Storage IO Percent |Percent |Maximum |Storage I/O consumption percent |No Dimensions | -|memory_percent |Yes |Host Memory Percent |Percent |Maximum |Host Memory Percent |No Dimensions | -|network_bytes_egress |Yes |Host Network Out |Bytes |Total |Host Network egress in bytes |No Dimensions | -|network_bytes_ingress |Yes |Host Network In |Bytes |Total |Host Network ingress in bytes |No Dimensions | -|Queries |Yes |Queries |Count |Total |Queries |No Dimensions | -|Replica_IO_Running |No |Replica IO Status |Count |Maximum |Status for replication IO thread running |No Dimensions | -|Replica_SQL_Running |No |Replica SQL Status |Count |Maximum |Status for replication SQL thread running |No Dimensions | -|replication_lag |Yes |Replication Lag In Seconds |Seconds |Maximum |Replication lag in seconds |No Dimensions | -|serverlog_storage_limit |Yes |Serverlog Storage Limit |Bytes |Maximum |Serverlog Storage Limit |No Dimensions | -|serverlog_storage_percent |Yes |Serverlog Storage Percent |Percent |Maximum |Serverlog Storage Percent |No Dimensions | -|serverlog_storage_usage |Yes |Serverlog Storage Used |Bytes |Maximum |Serverlog Storage Used |No Dimensions | -|Slow_queries |Yes |Slow Queries |Count |Total |The number of queries that have taken more than long_query_time seconds. |No Dimensions | -|storage_io_count |Yes |IO Count |Count |Total |The number of I/O consumed. |No Dimensions | -|storage_limit |Yes |Storage Limit |Bytes |Maximum |Storage Limit |No Dimensions | -|storage_percent |Yes |Storage Percent |Percent |Maximum |Storage Percent |No Dimensions | -|storage_throttle_count |Yes |Storage Throttle Count |Count |Maximum |Storage IO requests throttled in the selected time range. |No Dimensions | -|storage_used |Yes |Storage Used |Bytes |Maximum |Storage Used |No Dimensions | -|total_connections |Yes |Total Connections |Count |Total |Total Connections |No Dimensions | --## Microsoft.DBforMySQL/servers -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|active_connections |Yes |Active Connections |Count |Average |Active Connections |No Dimensions | -|backup_storage_used |Yes |Backup Storage used |Bytes |Average |Backup Storage used |No Dimensions | -|connections_failed |Yes |Failed Connections |Count |Total |Failed Connections |No Dimensions | -|cpu_percent |Yes |CPU percent |Percent |Average |CPU percent |No Dimensions | -|io_consumption_percent |Yes |IO percent |Percent |Average |IO percent |No Dimensions | -|memory_percent |Yes |Memory percent |Percent |Average |Memory percent |No Dimensions | -|network_bytes_egress |Yes |Network Out |Bytes |Total |Network Out across active connections |No Dimensions | -|network_bytes_ingress |Yes |Network In |Bytes |Total |Network In across active connections |No Dimensions | -|seconds_behind_master |Yes |Replication lag in seconds |Count |Maximum |Replication lag in seconds |No Dimensions | -|serverlog_storage_limit |Yes |Server Log storage limit |Bytes |Maximum |Server Log storage limit |No Dimensions | -|serverlog_storage_percent |Yes |Server Log storage percent |Percent |Average |Server Log storage percent |No Dimensions | -|serverlog_storage_usage |Yes |Server Log storage used |Bytes |Average |Server Log storage used |No Dimensions | -|storage_limit |Yes |Storage limit |Bytes |Maximum |Storage limit |No Dimensions | -|storage_percent |Yes |Storage percent |Percent |Average |Storage percent |No Dimensions | -|storage_used |Yes |Storage used |Bytes |Average |Storage used |No Dimensions | --## Microsoft.DBforPostgreSQL/flexibleServers -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|active_connections |Yes |Active Connections |Count |Average |Active Connections |No Dimensions | -|analyze_count_user_tables |Yes |Analyze Counter User Tables (Preview) |Count |Maximum |Number of times user only tables have been manually analyzed in this database |DatabaseName | -|autoanalyze_count_user_tables |Yes |AutoAnalyze Counter User Tables (Preview) |Count |Maximum |Number of times user only tables have been analyzed by the autovacuum daemon in this database |DatabaseName | -|autovacuum_count_user_tables |Yes |AutoVacuum Counter User Tables (Preview) |Count |Maximum |Number of times user only tables have been vacuumed by the autovacuum daemon in this database |DatabaseName | -|backup_storage_used |Yes |Backup Storage Used |Bytes |Average |Backup Storage Used |No Dimensions | -|blks_hit |Yes |Disk Blocks Hit (Preview) |Count |Total |Number of times disk blocks were found already in the buffer cache, so that a read was not necessary |DatabaseName | -|blks_read |Yes |Disk Blocks Read (Preview) |Count |Total |Number of disk blocks read in this database |DatabaseName | -|client_connections_active |Yes |Active client connections (Preview) |Count |Maximum |Connections from clients which are associated with a PostgreSQL connection |DatabaseName | -|client_connections_waiting |Yes |Waiting client connections (Preview) |Count |Maximum |Connections from clients that are waiting for a PostgreSQL connection to service them |DatabaseName | -|connections_failed |Yes |Failed Connections |Count |Total |Failed Connections |No Dimensions | -|connections_succeeded |Yes |Succeeded Connections |Count |Total |Succeeded Connections |No Dimensions | -|cpu_credits_consumed |Yes |CPU Credits Consumed |Count |Average |Total number of credits consumed by the database server |No Dimensions | -|cpu_credits_remaining |Yes |CPU Credits Remaining |Count |Average |Total number of credits available to burst |No Dimensions | -|cpu_percent |Yes |CPU percent |Percent |Average |CPU percent |No Dimensions | -|deadlocks |Yes |Deadlocks (Preview) |Count |Total |Number of deadlocks detected in this database |DatabaseName | -|disk_bandwidth_consumed_percentage |Yes |Disk Bandwidth Consumed Percentage (Preview) |Percent |Average |Percentage of disk bandwidth consumed per minute |No Dimensions | -|disk_iops_consumed_percentage |Yes |Disk IOPS Consumed Percentage (Preview) |Percent |Average |Percentage of disk I/Os consumed per minute |No Dimensions | -|disk_queue_depth |Yes |Disk Queue Depth |Count |Average |Number of outstanding I/O operations to the data disk |No Dimensions | -|iops |Yes |IOPS |Count |Average |IO Operations per second |No Dimensions | -|logical_replication_delay_in_bytes |Yes |Max Logical Replication Lag (Preview) |Bytes |Maximum |Maximum lag across all logical replication slots |No Dimensions | -|longest_query_time_sec |Yes |Oldest Query (Preview) |Seconds |Maximum |The age in seconds of the longest query that is currently running |No Dimensions | -|longest_transaction_time_sec |Yes |Oldest Transaction (Preview) |Seconds |Maximum |The age in seconds of the longest transaction (including idle transactions) |No Dimensions | -|max_connections |Yes |Max Connections (Preview) |Count |Maximum |Max connections |No Dimensions | -|maximum_used_transactionIDs |Yes |Maximum Used Transaction IDs |Count |Average |Maximum Used Transaction IDs |No Dimensions | -|memory_percent |Yes |Memory percent |Percent |Average |Memory percent |No Dimensions | -|n_dead_tup_user_tables |Yes |Estimated Dead Rows User Tables (Preview) |Count |Maximum |Estimated number of dead rows for user only tables in this database |DatabaseName | -|n_live_tup_user_tables |Yes |Estimated Live Rows User Tables (Preview) |Count |Maximum |Estimated number of live rows for user only tables in this database |DatabaseName | -|n_mod_since_analyze_user_tables |Yes |Estimated Modifications User Tables (Preview) |Count |Maximum |Estimated number of rows modified since user only tables were last analyzed |DatabaseName | -|network_bytes_egress |Yes |Network Out |Bytes |Total |Network Out across active connections |No Dimensions | -|network_bytes_ingress |Yes |Network In |Bytes |Total |Network In across active connections |No Dimensions | -|num_pools |Yes |Number of connection pools (Preview) |Count |Maximum |Total number of connection pools |DatabaseName | -|numbackends |Yes |Backends (Preview) |Count |Maximum |Number of backends connected to this database |DatabaseName | -|oldest_backend_time_sec |Yes |Oldest Backend (Preview) |Seconds |Maximum |The age in seconds of the oldest backend (irrespective of the state) |No Dimensions | -|oldest_backend_xmin |Yes |Oldest xmin (Preview) |Count |Maximum |The actual value of the oldest xmin. |No Dimensions | -|oldest_backend_xmin_age |Yes |Oldest xmin Age (Preview) |Count |Maximum |Age in units of the oldest xmin. It indicated how many transactions passed since oldest xmin |No Dimensions | -|physical_replication_delay_in_bytes |Yes |Max Physical Replication Lag (Preview) |Bytes |Maximum |Maximum lag across all asynchronous physical replication slots |No Dimensions | -|physical_replication_delay_in_seconds |Yes |Read Replica Lag (Preview) |Seconds |Maximum |Read Replica lag in seconds |No Dimensions | -|read_iops |Yes |Read IOPS |Count |Average |Number of data disk I/O read operations per second |No Dimensions | -|read_throughput |Yes |Read Throughput Bytes/Sec |Count |Average |Bytes read per second from the data disk during monitoring period |No Dimensions | -|server_connections_active |Yes |Active server connections (Preview) |Count |Maximum |Connections to PostgreSQL that are in use by a client connection |DatabaseName | -|server_connections_idle |Yes |Idle server connections (Preview) |Count |Maximum |Connections to PostgreSQL that are idle, ready to service a new client connection |DatabaseName | -|sessions_by_state |Yes |Sessions by State (Preview) |Count |Maximum |Overall state of the backends |State | -|sessions_by_wait_event_type |Yes |Sessions by WaitEventType (Preview) |Count |Maximum |Sessions by the type of event for which the backend is waiting |WaitEventType | -|storage_free |Yes |Storage Free |Bytes |Average |Storage Free |No Dimensions | -|storage_percent |Yes |Storage percent |Percent |Average |Storage percent |No Dimensions | -|storage_used |Yes |Storage used |Bytes |Average |Storage used |No Dimensions | -|tables_analyzed_user_tables |Yes |User Tables Analyzed (Preview) |Count |Maximum |Number of user only tables that have been analyzed in this database |DatabaseName | -|tables_autoanalyzed_user_tables |Yes |User Tables AutoAnalyzed (Preview) |Count |Maximum |Number of user only tables that have been analyzed by the autovacuum daemon in this database |DatabaseName | -|tables_autovacuumed_user_tables |Yes |User Tables AutoVacuumed (Preview) |Count |Maximum |Number of user only tables that have been vacuumed by the autovacuum daemon in this database |DatabaseName | -|tables_counter_user_tables |Yes |User Tables Counter (Preview) |Count |Maximum |Number of user only tables in this database |DatabaseName | -|tables_vacuumed_user_tables |Yes |User Tables Vacuumed (Preview) |Count |Maximum |Number of user only tables that have been vacuumed in this database |DatabaseName | -|temp_bytes |Yes |Temporary Files Size (Preview) |Bytes |Total |Total amount of data written to temporary files by queries in this database |DatabaseName | -|temp_files |Yes |Temporary Files (Preview) |Count |Total |Number of temporary files created by queries in this database |DatabaseName | -|total_pooled_connections |Yes |Total pooled connections (Preview) |Count |Maximum |Current number of pooled connections |DatabaseName | -|tup_deleted |Yes |Tuples Deleted (Preview) |Count |Total |Number of rows deleted by queries in this database |DatabaseName | -|tup_fetched |Yes |Tuples Fetched (Preview) |Count |Total |Number of rows fetched by queries in this database |DatabaseName | -|tup_inserted |Yes |Tuples Inserted (Preview) |Count |Total |Number of rows inserted by queries in this database |DatabaseName | -|tup_returned |Yes |Tuples Returned (Preview) |Count |Total |Number of rows returned by queries in this database |DatabaseName | -|tup_updated |Yes |Tuples Updated (Preview) |Count |Total |Number of rows updated by queries in this database |DatabaseName | -|txlogs_storage_used |Yes |Transaction Log Storage Used |Bytes |Average |Transaction Log Storage Used |No Dimensions | -|vacuum_count_user_tables |Yes |Vacuum Counter User Tables (Preview) |Count |Maximum |Number of times user only tables have been manually vacuumed in this database (not counting VACUUM FULL) |DatabaseName | -|write_iops |Yes |Write IOPS |Count |Average |Number of data disk I/O write operations per second |No Dimensions | -|write_throughput |Yes |Write Throughput Bytes/Sec |Count |Average |Bytes written per second to the data disk during monitoring period |No Dimensions | -|xact_commit |Yes |Transactions Committed (Preview) |Count |Total |Number of transactions in this database that have been committed |DatabaseName | -|xact_rollback |Yes |Transactions Rolled Back (Preview) |Count |Total |Number of transactions in this database that have been rolled back |DatabaseName | -|xact_total |Yes |Total Transactions (Preview) |Count |Total |Number of total transactions executed in this database |DatabaseName | --## Microsoft.DBForPostgreSQL/serverGroupsv2 -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|active_connections |Yes |Active Connections |Count |Average |Active Connections |ServerName | -|apps_reserved_memory_percent |Yes |Reserved Memory percent |Percent |Average |Percentage of Commit Memory Limit Reserved by Applications |ServerName | -|cpu_credits_consumed |Yes |CPU Credits Consumed |Count |Average |Total number of credits consumed by the node. Only available when burstable compute is provisioned on the node. |ServerName | -|cpu_credits_remaining |Yes |CPU Credits Remaining |Count |Average |Total number of credits available to burst. Only available when burstable compute is provisioned on the node. |ServerName | -|cpu_percent |Yes |CPU percent |Percent |Average |CPU percent |ServerName | -|iops |Yes |IOPS |Count |Average |IO operations per second |ServerName | -|memory_percent |Yes |Memory percent |Percent |Average |Memory percent |ServerName | -|network_bytes_egress |Yes |Network Out |Bytes |Total |Network Out across active connections |ServerName | -|network_bytes_ingress |Yes |Network In |Bytes |Total |Network In across active connections |ServerName | -|replication_lag |Yes |Replication lag |MilliSeconds |Average |Allows to see how much read replica nodes are behind their counterparts in the primary cluster |ServerName | -|storage_percent |Yes |Storage percent |Percent |Average |Storage percent |ServerName | -|storage_used |Yes |Storage used |Bytes |Average |Storage used |ServerName | -|vm_cached_bandwidth_percent |Yes |VM Cached Bandwidth Consumed Percentage |Percent |Average |Percentage of cached disk bandwidth consumed by the VM |ServerName | -|vm_cached_iops_percent |Yes |VM Cached IOPS Consumed Percentage |Percent |Average |Percentage of cached disk IOPS consumed by the VM |ServerName | -|vm_uncached_bandwidth_percent |Yes |VM Uncached Bandwidth Consumed Percentage |Percent |Average |Percentage of uncached disk bandwidth consumed by the VM |ServerName | -|vm_uncached_iops_percent |Yes |VM Uncached IOPS Consumed Percentage |Percent |Average |Percentage of uncached disk IOPS consumed by the VM |ServerName | --## Microsoft.DBforPostgreSQL/servers -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|active_connections |Yes |Active Connections |Count |Average |Active Connections |No Dimensions | -|backup_storage_used |Yes |Backup Storage Used |Bytes |Average |Backup Storage Used |No Dimensions | -|connections_failed |Yes |Failed Connections |Count |Total |Failed Connections |No Dimensions | -|cpu_percent |Yes |CPU percent |Percent |Average |CPU percent |No Dimensions | -|io_consumption_percent |Yes |IO percent |Percent |Average |IO percent |No Dimensions | -|memory_percent |Yes |Memory percent |Percent |Average |Memory percent |No Dimensions | -|network_bytes_egress |Yes |Network Out |Bytes |Total |Network Out across active connections |No Dimensions | -|network_bytes_ingress |Yes |Network In |Bytes |Total |Network In across active connections |No Dimensions | -|pg_replica_log_delay_in_bytes |Yes |Max Lag Across Replicas |Bytes |Maximum |Lag in bytes of the most lagging replica |No Dimensions | -|pg_replica_log_delay_in_seconds |Yes |Replica Lag |Seconds |Maximum |Replica lag in seconds |No Dimensions | -|serverlog_storage_limit |Yes |Server Log storage limit |Bytes |Maximum |Server Log storage limit |No Dimensions | -|serverlog_storage_percent |Yes |Server Log storage percent |Percent |Average |Server Log storage percent |No Dimensions | -|serverlog_storage_usage |Yes |Server Log storage used |Bytes |Average |Server Log storage used |No Dimensions | -|storage_limit |Yes |Storage limit |Bytes |Maximum |Storage limit |No Dimensions | -|storage_percent |Yes |Storage percent |Percent |Average |Storage percent |No Dimensions | -|storage_used |Yes |Storage used |Bytes |Average |Storage used |No Dimensions | --## Microsoft.DBforPostgreSQL/serversv2 -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|active_connections |Yes |Active Connections |Count |Average |Active Connections |No Dimensions | -|cpu_percent |Yes |CPU percent |Percent |Average |CPU percent |No Dimensions | -|iops |Yes |IOPS |Count |Average |IO Operations per second |No Dimensions | -|memory_percent |Yes |Memory percent |Percent |Average |Memory percent |No Dimensions | -|network_bytes_egress |Yes |Network Out |Bytes |Total |Network Out across active connections |No Dimensions | -|network_bytes_ingress |Yes |Network In |Bytes |Total |Network In across active connections |No Dimensions | -|storage_percent |Yes |Storage percent |Percent |Average |Storage percent |No Dimensions | -|storage_used |Yes |Storage used |Bytes |Average |Storage used |No Dimensions | --## Microsoft.Devices/IotHubs -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|c2d.commands.egress.abandon.success |Yes |C2D messages abandoned |Count |Total |Number of cloud-to-device messages abandoned by the device |No Dimensions | -|c2d.commands.egress.complete.success |Yes |C2D message deliveries completed |Count |Total |Number of cloud-to-device message deliveries completed successfully by the device |No Dimensions | -|c2d.commands.egress.reject.success |Yes |C2D messages rejected |Count |Total |Number of cloud-to-device messages rejected by the device |No Dimensions | -|c2d.methods.failure |Yes |Failed direct method invocations |Count |Total |The count of all failed direct method calls. |No Dimensions | -|c2d.methods.requestSize |Yes |Request size of direct method invocations |Bytes |Average |The average, min, and max of all successful direct method requests. |No Dimensions | -|c2d.methods.responseSize |Yes |Response size of direct method invocations |Bytes |Average |The average, min, and max of all successful direct method responses. |No Dimensions | -|c2d.methods.success |Yes |Successful direct method invocations |Count |Total |The count of all successful direct method calls. |No Dimensions | -|c2d.twin.read.failure |Yes |Failed twin reads from back end |Count |Total |The count of all failed back-end-initiated twin reads. |No Dimensions | -|c2d.twin.read.size |Yes |Response size of twin reads from back end |Bytes |Average |The average, min, and max of all successful back-end-initiated twin reads. |No Dimensions | -|c2d.twin.read.success |Yes |Successful twin reads from back end |Count |Total |The count of all successful back-end-initiated twin reads. |No Dimensions | -|c2d.twin.update.failure |Yes |Failed twin updates from back end |Count |Total |The count of all failed back-end-initiated twin updates. |No Dimensions | -|c2d.twin.update.size |Yes |Size of twin updates from back end |Bytes |Average |The average, min, and max size of all successful back-end-initiated twin updates. |No Dimensions | -|c2d.twin.update.success |Yes |Successful twin updates from back end |Count |Total |The count of all successful back-end-initiated twin updates. |No Dimensions | -|C2DMessagesExpired |Yes |C2D Messages Expired |Count |Total |Number of expired cloud-to-device messages |No Dimensions | -|configurations |Yes |Configuration Metrics |Count |Total |Metrics for Configuration Operations |No Dimensions | -|connectedDeviceCount |No |Connected devices |Count |Average |Number of devices connected to your IoT hub |No Dimensions | -|d2c.endpoints.egress.builtIn.events |Yes |Routing: messages delivered to messages/events |Count |Total |The number of times IoT Hub routing successfully delivered messages to the built-in endpoint (messages/events). |No Dimensions | -|d2c.endpoints.egress.eventHubs |Yes |Routing: messages delivered to Event Hub |Count |Total |The number of times IoT Hub routing successfully delivered messages to Event Hub endpoints. |No Dimensions | -|d2c.endpoints.egress.serviceBusQueues |Yes |Routing: messages delivered to Service Bus Queue |Count |Total |The number of times IoT Hub routing successfully delivered messages to Service Bus queue endpoints. |No Dimensions | -|d2c.endpoints.egress.serviceBusTopics |Yes |Routing: messages delivered to Service Bus Topic |Count |Total |The number of times IoT Hub routing successfully delivered messages to Service Bus topic endpoints. |No Dimensions | -|d2c.endpoints.egress.storage |Yes |Routing: messages delivered to storage |Count |Total |The number of times IoT Hub routing successfully delivered messages to storage endpoints. |No Dimensions | -|d2c.endpoints.egress.storage.blobs |Yes |Routing: blobs delivered to storage |Count |Total |The number of times IoT Hub routing delivered blobs to storage endpoints. |No Dimensions | -|d2c.endpoints.egress.storage.bytes |Yes |Routing: data delivered to storage |Bytes |Total |The amount of data (bytes) IoT Hub routing delivered to storage endpoints. |No Dimensions | -|d2c.endpoints.latency.builtIn.events |Yes |Routing: message latency for messages/events |MilliSeconds |Average |The average latency (milliseconds) between message ingress to IoT Hub and telemetry message ingress into the built-in endpoint (messages/events). |No Dimensions | -|d2c.endpoints.latency.eventHubs |Yes |Routing: message latency for Event Hub |MilliSeconds |Average |The average latency (milliseconds) between message ingress to IoT Hub and message ingress into an Event Hub endpoint. |No Dimensions | -|d2c.endpoints.latency.serviceBusQueues |Yes |Routing: message latency for Service Bus Queue |MilliSeconds |Average |The average latency (milliseconds) between message ingress to IoT Hub and telemetry message ingress into a Service Bus queue endpoint. |No Dimensions | -|d2c.endpoints.latency.serviceBusTopics |Yes |Routing: message latency for Service Bus Topic |MilliSeconds |Average |The average latency (milliseconds) between message ingress to IoT Hub and telemetry message ingress into a Service Bus topic endpoint. |No Dimensions | -|d2c.endpoints.latency.storage |Yes |Routing: message latency for storage |MilliSeconds |Average |The average latency (milliseconds) between message ingress to IoT Hub and telemetry message ingress into a storage endpoint. |No Dimensions | -|d2c.telemetry.egress.dropped |Yes |Routing: telemetry messages dropped |Count |Total |The number of times messages were dropped by IoT Hub routing due to dead endpoints. This value does not count messages delivered to fallback route as dropped messages are not delivered there. |No Dimensions | -|d2c.telemetry.egress.fallback |Yes |Routing: messages delivered to fallback |Count |Total |The number of times IoT Hub routing delivered messages to the endpoint associated with the fallback route. |No Dimensions | -|d2c.telemetry.egress.invalid |Yes |Routing: telemetry messages incompatible |Count |Total |The number of times IoT Hub routing failed to deliver messages due to an incompatibility with the endpoint. This value does not include retries. |No Dimensions | -|d2c.telemetry.egress.orphaned |Yes |Routing: telemetry messages orphaned |Count |Total |The number of times messages were orphaned by IoT Hub routing because they didn't match any routing rules (including the fallback rule). |No Dimensions | -|d2c.telemetry.egress.success |Yes |Routing: telemetry messages delivered |Count |Total |The number of times messages were successfully delivered to all endpoints using IoT Hub routing. If a message is routed to multiple endpoints, this value increases by one for each successful delivery. If a message is delivered to the same endpoint multiple times, this value increases by one for each successful delivery. |No Dimensions | -|d2c.telemetry.ingress.allProtocol |Yes |Telemetry message send attempts |Count |Total |Number of device-to-cloud telemetry messages attempted to be sent to your IoT hub |No Dimensions | -|d2c.telemetry.ingress.sendThrottle |Yes |Number of throttling errors |Count |Total |Number of throttling errors due to device throughput throttles |No Dimensions | -|d2c.telemetry.ingress.success |Yes |Telemetry messages sent |Count |Total |Number of device-to-cloud telemetry messages sent successfully to your IoT hub |No Dimensions | -|d2c.twin.read.failure |Yes |Failed twin reads from devices |Count |Total |The count of all failed device-initiated twin reads. |No Dimensions | -|d2c.twin.read.size |Yes |Response size of twin reads from devices |Bytes |Average |The average, min, and max of all successful device-initiated twin reads. |No Dimensions | -|d2c.twin.read.success |Yes |Successful twin reads from devices |Count |Total |The count of all successful device-initiated twin reads. |No Dimensions | -|d2c.twin.update.failure |Yes |Failed twin updates from devices |Count |Total |The count of all failed device-initiated twin updates. |No Dimensions | -|d2c.twin.update.size |Yes |Size of twin updates from devices |Bytes |Average |The average, min, and max size of all successful device-initiated twin updates. |No Dimensions | -|d2c.twin.update.success |Yes |Successful twin updates from devices |Count |Total |The count of all successful device-initiated twin updates. |No Dimensions | -|dailyMessageQuotaUsed |Yes |Total number of messages used |Count |Maximum |Number of total messages used today |No Dimensions | -|deviceDataUsage |Yes |Total device data usage |Bytes |Total |Bytes transferred to and from any devices connected to IotHub |No Dimensions | -|deviceDataUsageV2 |Yes |Total device data usage (preview) |Bytes |Total |Bytes transferred to and from any devices connected to IotHub |No Dimensions | -|devices.connectedDevices.allProtocol |Yes |Connected devices (deprecated) |Count |Total |Number of devices connected to your IoT hub |No Dimensions | -|devices.totalDevices |Yes |Total devices (deprecated) |Count |Total |Number of devices registered to your IoT hub |No Dimensions | -|EventGridDeliveries |Yes |Event Grid deliveries |Count |Total |The number of IoT Hub events published to Event Grid. Use the Result dimension for the number of successful and failed requests. EventType dimension shows the type of event (https://aka.ms/ioteventgrid). |Result, EventType | -|EventGridLatency |Yes |Event Grid latency |MilliSeconds |Average |The average latency (milliseconds) from when the Iot Hub event was generated to when the event was published to Event Grid. This number is an average between all event types. Use the EventType dimension to see latency of a specific type of event. |EventType | -|jobs.cancelJob.failure |Yes |Failed job cancellations |Count |Total |The count of all failed calls to cancel a job. |No Dimensions | -|jobs.cancelJob.success |Yes |Successful job cancellations |Count |Total |The count of all successful calls to cancel a job. |No Dimensions | -|jobs.completed |Yes |Completed jobs |Count |Total |The count of all completed jobs. |No Dimensions | -|jobs.createDirectMethodJob.failure |Yes |Failed creations of method invocation jobs |Count |Total |The count of all failed creation of direct method invocation jobs. |No Dimensions | -|jobs.createDirectMethodJob.success |Yes |Successful creations of method invocation jobs |Count |Total |The count of all successful creation of direct method invocation jobs. |No Dimensions | -|jobs.createTwinUpdateJob.failure |Yes |Failed creations of twin update jobs |Count |Total |The count of all failed creation of twin update jobs. |No Dimensions | -|jobs.createTwinUpdateJob.success |Yes |Successful creations of twin update jobs |Count |Total |The count of all successful creation of twin update jobs. |No Dimensions | -|jobs.failed |Yes |Failed jobs |Count |Total |The count of all failed jobs. |No Dimensions | -|jobs.listJobs.failure |Yes |Failed calls to list jobs |Count |Total |The count of all failed calls to list jobs. |No Dimensions | -|jobs.listJobs.success |Yes |Successful calls to list jobs |Count |Total |The count of all successful calls to list jobs. |No Dimensions | -|jobs.queryJobs.failure |Yes |Failed job queries |Count |Total |The count of all failed calls to query jobs. |No Dimensions | -|jobs.queryJobs.success |Yes |Successful job queries |Count |Total |The count of all successful calls to query jobs. |No Dimensions | -|RoutingDataSizeInBytesDelivered |Yes |Routing Delivery Message Size in Bytes (preview) |Bytes |Total |The total size in bytes of messages delivered by IoT hub to an endpoint. You can use the EndpointName and EndpointType dimensions to view the size of the messages in bytes delivered to your different endpoints. The metric value increases for every message delivered, including if the message is delivered to multiple endpoints or if the message is delivered to the same endpoint multiple times. |EndpointType, EndpointName, RoutingSource | -|RoutingDeliveries |Yes |Routing Deliveries (preview) |Count |Total |The number of times IoT Hub attempted to deliver messages to all endpoints using routing. To see the number of successful or failed attempts, use the Result dimension. To see the reason of failure, like invalid, dropped, or orphaned, use the FailureReasonCategory dimension. You can also use the EndpointName and EndpointType dimensions to understand how many messages were delivered to your different endpoints. The metric value increases by one for each delivery attempt, including if the message is delivered to multiple endpoints or if the message is delivered to the same endpoint multiple times. |EndpointType, EndpointName, FailureReasonCategory, Result, RoutingSource | -|RoutingDeliveryLatency |Yes |Routing Delivery Latency (preview) |MilliSeconds |Average |The average latency (milliseconds) between message ingress to IoT Hub and telemetry message ingress into an endpoint. You can use the EndpointName and EndpointType dimensions to understand the latency to your different endpoints. |EndpointType, EndpointName, RoutingSource | -|totalDeviceCount |No |Total devices |Count |Average |Number of devices registered to your IoT hub |No Dimensions | -|twinQueries.failure |Yes |Failed twin queries |Count |Total |The count of all failed twin queries. |No Dimensions | -|twinQueries.resultSize |Yes |Twin queries result size |Bytes |Average |The average, min, and max of the result size of all successful twin queries. |No Dimensions | -|twinQueries.success |Yes |Successful twin queries |Count |Total |The count of all successful twin queries. |No Dimensions | --## Microsoft.Devices/provisioningServices -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AttestationAttempts |Yes |Attestation attempts |Count |Total |Number of device attestations attempted |ProvisioningServiceName, Status, Protocol | -|DeviceAssignments |Yes |Devices assigned |Count |Total |Number of devices assigned to an IoT hub |ProvisioningServiceName, IotHubName | -|RegistrationAttempts |Yes |Registration attempts |Count |Total |Number of device registrations attempted |ProvisioningServiceName, IotHubName, Status | --## Microsoft.DigitalTwins/digitalTwinsInstances -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ApiRequests |Yes |API Requests |Count |Total |The number of API requests made for Digital Twins read, write, delete and query operations. |Operation, Authentication, Protocol, StatusCode, StatusCodeClass, StatusText | -|ApiRequestsFailureRate |Yes |API Requests Failure Rate |Percent |Average |The percentage of API requests that the service receives for your instance that return an internal error (500) response code for Digital Twins read, write, delete and query operations. |Operation, Authentication, Protocol | -|ApiRequestsLatency |Yes |API Requests Latency |Milliseconds |Average |The response time for API requests, i.e. from when the request is received by Azure Digital Twins until the service sends a success/fail result for Digital Twins read, write, delete and query operations. |Operation, Authentication, Protocol, StatusCode, StatusCodeClass, StatusText | -|BillingApiOperations |Yes |Billing API Operations |Count |Total |Billing metric for the count of all API requests made against the Azure Digital Twins service. |MeterId | -|BillingMessagesProcessed |Yes |Billing Messages Processed |Count |Total |Billing metric for the number of messages sent out from Azure Digital Twins to external endpoints. |MeterId | -|BillingQueryUnits |Yes |Billing Query Units |Count |Total |The number of Query Units, an internally computed measure of service resource usage, consumed to execute queries. |MeterId | -|BulkOperationEntityCount |Yes |Bulk Operation Entity Count (preview) |Count |Total |The number of twins, models, or relationships processed by a bulk operation. |Operation, Result | -|BulkOperationLatency |Yes |Bulk Operation Latency (preview) |Milliseconds |Average |Total time taken for a bulk operation to complete. |Operation, Authentication, Protocol | -|DataHistoryRouting |Yes |Data History Messages Routed (preview) |Count |Total |The number of messages routed to a time series database. |EndpointType, Result | -|DataHistoryRoutingFailureRate |Yes |Data History Routing Failure Rate (preview) |Percent |Average |The percentage of events that result in an error as they are routed from Azure Digital Twins to a time series database. |EndpointType | -|DataHistoryRoutingLatency |Yes |Data History Routing Latency (preview) |Milliseconds |Average |Time elapsed between an event getting routed from Azure Digital Twins to when it is posted to a time series database. |EndpointType, Result | -|IngressEvents |Yes |Ingress Events |Count |Total |The number of incoming telemetry events into Azure Digital Twins. |Result | -|IngressEventsFailureRate |Yes |Ingress Events Failure Rate |Percent |Average |The percentage of incoming telemetry events for which the service returns an internal error (500) response code. |No Dimensions | -|IngressEventsLatency |Yes |Ingress Events Latency |Milliseconds |Average |The time from when an event arrives to when it is ready to be egressed by Azure Digital Twins, at which point the service sends a success/fail result. |Result | -|ModelCount |Yes |Model Count |Count |Total |Total number of models in the Azure Digital Twins instance. Use this metric to determine if you are approaching the service limit for max number of models allowed per instance. |No Dimensions | -|Routing |Yes |Messages Routed |Count |Total |The number of messages routed to an endpoint Azure service such as Event Hub, Service Bus or Event Grid. |EndpointType, Result | -|RoutingFailureRate |Yes |Routing Failure Rate |Percent |Average |The percentage of events that result in an error as they are routed from Azure Digital Twins to an endpoint Azure service such as Event Hub, Service Bus or Event Grid. |EndpointType | -|RoutingLatency |Yes |Routing Latency |Milliseconds |Average |Time elapsed between an event getting routed from Azure Digital Twins to when it is posted to the endpoint Azure service such as Event Hub, Service Bus or Event Grid. |EndpointType, Result | -|TwinCount |Yes |Twin Count |Count |Total |Total number of twins in the Azure Digital Twins instance. Use this metric to determine if you are approaching the service limit for max number of twins allowed per instance. |No Dimensions | --## Microsoft.DocumentDB/cassandraClusters -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|cassandra_cache_capacity |No |capacity |Bytes |Total |Cache capacity in bytes. |cassandra_datacenter, cassandra_node, cache_name | -|cassandra_cache_entries |No |entries |Count |Total |Total number of cache entries. |cassandra_datacenter, cassandra_node, cache_name | -|cassandra_cache_hit_rate |No |hit rate |Percent |Average |All time cache hit rate. |cassandra_datacenter, cassandra_node, cache_name | -|cassandra_cache_hits |No |hits |Count |Total |Total number of cache hits. |cassandra_datacenter, cassandra_node, cache_name | -|cassandra_cache_miss_latency_histogram |No |cache miss latency average (microseconds) |Count |Average |Average cache miss latency (in microseconds). |cassandra_datacenter, cassandra_node, quantile | -|cassandra_cache_miss_latency_p99 |No |cache miss latency p99 (microseconds) |Count |Average |p99 Latency of misses. |cassandra_datacenter, cassandra_node, cache_name | -|cassandra_cache_requests |No |requests |Count |Total |Total number of cache requests. |cassandra_datacenter, cassandra_node, cache_name | -|cassandra_cache_size |No |occupied cache size |Bytes |Total |Total size of occupied cache, in bytes. |cassandra_datacenter, cassandra_node, cache_name | -|cassandra_client_auth_failure |No |auth failure (deprecated) |Count |Total |Number of failed client authentication requests. |cassandra_datacenter, cassandra_node | -|cassandra_client_auth_failure2 |No |auth failure |Count |Total |Number of failed client authentication requests. |cassandra_datacenter, cassandra_node | -|cassandra_client_auth_success |No |auth success |Count |Total |Number of successful client authentication requests. |cassandra_datacenter, cassandra_node | -|cassandra_client_request_condition_not_met |No |condition not met |Count |Total |Number of transaction preconditions did not match current values. |cassandra_datacenter, cassandra_node, request_type | -|cassandra_client_request_contention_histogram |No |contention average |Count |Average |How many contended reads/writes were encountered in average. |cassandra_datacenter, cassandra_node, request_type | -|cassandra_client_request_contention_histogram_p99 |No |contention p99 |Count |Average |p99 How many contended writes were encountered. |cassandra_datacenter, cassandra_node, request_type | -|cassandra_client_request_failures |No |failures (deprecated) |Count |Total |Number of transaction failures encountered. |cassandra_datacenter, cassandra_node, request_type | -|cassandra_client_request_failures2 |No |failures |Count |Total |Number of transaction failures encountered. |cassandra_datacenter, cassandra_node, request_type | -|cassandra_client_request_latency_histogram |No |client request latency average (microseconds) |Count |Average |Average client request latency (in microseconds). |cassandra_datacenter, cassandra_node, quantile, request_type | -|cassandra_client_request_latency_p99 |No |client request latency p99 (microseconds) |Count |Average |p99 client request latency (in microseconds). |cassandra_datacenter, cassandra_node, request_type | -|cassandra_client_request_timeouts |No |timeouts (deprecated) |Count |Total |Number of timeouts encountered. |cassandra_datacenter, cassandra_node, request_type | -|cassandra_client_request_timeouts2 |No |timeouts |Count |Total |Number of timeouts encountered. |cassandra_datacenter, cassandra_node, request_type | -|cassandra_client_request_unfinished_commit |No |unfinished commit |Count |Total |Number of transactions that were committed on write. |cassandra_datacenter, cassandra_node, request_type | -|cassandra_commit_log_waiting_on_commit_latency_histogram |No |commit latency on waiting average (microseconds) |Count |Average |Average time spent waiting on CL fsync (in microseconds); for Periodic this is only occurs when the sync is lagging its sync interval. |cassandra_datacenter, cassandra_node, quantile | -|cassandra_cql_prepared_statements_executed |No |prepared statements executed |Count |Total |Number of prepared statements executed. |cassandra_datacenter, cassandra_node | -|cassandra_cql_regular_statements_executed |No |regular statements executed |Count |Total |Number of non prepared statements executed. |cassandra_datacenter, cassandra_node | -|cassandra_jvm_gc_count |No |gc count |Count |Total |Total number of collections that have occurred. |cassandra_datacenter, cassandra_node | -|cassandra_jvm_gc_time |No |gc time |MilliSeconds |Average |Approximate accumulated collection elapsed time. |cassandra_datacenter, cassandra_node | -|cassandra_table_all_memtables_live_data_size |No |all memtables live data size |Bytes |Total |Total amount of live data stored in the memtables (2i and pending flush memtables included) that resides off-heap, excluding any data structure overhead. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_all_memtables_off_heap_size |No |all memtables off heap size |Bytes |Total |Total amount of data stored in the memtables (2i and pending flush memtables included) that resides off-heap. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_bloom_filter_disk_space_used |No |bloom filter disk space used |Bytes |Total |Disk space used by bloom filter (in bytes). |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_bloom_filter_false_positives |No |bloom filter false positives |Count |Total |Number of false positives on table's bloom filter. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_bloom_filter_false_ratio |No |bloom filter false ratio |Percent |Average |False positive ratio of table's bloom filter. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_bloom_filter_off_heap_memory_used |No |bloom filter off-heap memory used |Bytes |Total |Off-heap memory used by bloom filter. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_bytes_flushed |No |bytes flushed |Bytes |Total |Total number of bytes flushed since server [re]start. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_cas_commit |No |cas commit average (microseconds) |Count |Average |Average latency of paxos commit round. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_cas_commit_p99 |No |cas commit p99 (microseconds) |Count |Average |p99 Latency of paxos commit round. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_cas_prepare |No |cas prepare average (microseconds) |Count |Average |Average latency of paxos prepare round. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_cas_prepare_p99 |No |cas prepare p99 (microseconds) |Count |Average |p99 Latency of paxos prepare round. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_cas_propose |No |cas propose average (microseconds) |Count |Average |Average latency of paxos propose round. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_cas_propose_p99 |No |cas propose p99 (microseconds) |Count |Average |p99 Latency of paxos propose round. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_col_update_time_delta_histogram |No |col update time delta average |Count |Average |Average column update time delta on this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_col_update_time_delta_histogram_p99 |No |col update time delta p99 |Count |Average |p99 Column update time delta on this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_compaction_bytes_written |No |compaction bytes written |Bytes |Total |Total number of bytes written by compaction since server [re]start. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_compression_metadata_off_heap_memory_used |No |compression metadata off-heap memory used |Bytes |Total |Off-heap memory used by compression metadata. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_compression_ratio |No |compression ratio |Percent |Average |Current compression ratio for all SSTables. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_coordinator_read_latency |No |coordinator read latency average (microseconds) |Count |Average |Average coordinator read latency for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_coordinator_read_latency_p99 |No |coordinator read latency p99 (microseconds) |Count |Average |p99 Coordinator read latency for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_coordinator_scan_latency |No |coordinator scan latency average (microseconds) |Count |Average |Average coordinator range scan latency for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_coordinator_scan_latency_p99 |No |coordinator scan latency p99 (microseconds) |Count |Average |p99 Coordinator range scan latency for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_dropped_mutations |No |dropped mutations (deprecated) |Count |Total |Number of dropped mutations on this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_dropped_mutations2 |No |dropped mutations |Count |Total |Number of dropped mutations on this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_estimated_column_count_histogram |No |estimated column count average |Count |Average |Estimated number of columns in average. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_estimated_column_count_histogram_p99 |No |estimated column count p99 |Count |Average |p99 Estimated number of columns. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_estimated_partition_count |No |estimated partition count |Count |Total |Approximate number of keys in table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_estimated_partition_size_histogram |No |estimated partition size average |Bytes |Average |Estimated partition size in average. |cassandra_datacenter, cassandra_node, quantile, table, keyspace | -|cassandra_table_estimated_partition_size_histogram_p99 |No |estimated partition size p99 |Bytes |Average |p99 Estimated partition size (in bytes). |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_index_summary_off_heap_memory_used |No |index summary off-heap memory used |Bytes |Total |Off-heap memory used by index summary. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_key_cache_hit_rate |No |key cache hit rate |Percent |Average |Key cache hit rate for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_live_disk_space_used |No |live disk space used |Bytes |Total |Disk space used by SSTables belonging to this table (in bytes). |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_live_scanned_histogram |No |live scanned average |Count |Average |Average live cells scanned in queries on this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_live_scanned_histogram_p99 |No |live scanned p99 |Count |Average |p99 Live cells scanned in queries on this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_live_sstable_count |No |live sstable count |Count |Total |Number of SSTables on disk for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_max_partition_size |No |max partition size |Bytes |Maximum |Size of the largest compacted partition (in bytes). |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_mean_partition_size |No |mean partition size |Bytes |Average |Size of the average compacted partition (in bytes). |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_memtable_columns_count |No |memtable columns count |Count |Total |Total number of columns present in the memtable. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_memtable_off_heap_size |No |memtable off heap size |Bytes |Total |Total amount of data stored in the memtable that resides off-heap, including column related overhead and partitions overwritten. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_memtable_on_heap_size |No |memtable on heap size |Bytes |Total |Total amount of data stored in the memtable that resides on-heap, including column related overhead and partitions overwritten. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_memtable_switch_count |No |memtable switch count |Count |Total |Number of times flush has resulted in the memtable being switched out. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_min_partition_size |No |min partition size |Bytes |Minimum |Size of the smallest compacted partition (in bytes). |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_pending_compactions |No |pending compactions (deprecated) |Count |Total |Estimate of number of pending compactions for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_pending_compactions2 |No |pending compactions |Count |Total |Estimate of number of pending compactions for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_pending_flushes |No |pending flushes (deprecated) |Count |Total |Estimated number of flush tasks pending for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_pending_flushes2 |No |pending flushes |Count |Total |Estimated number of flush tasks pending for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_percent_repaired |No |percent repaired |Percent |Average |Percent of table data that is repaired on disk. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_range_latency |No |range latency average (microseconds) |Count |Average |Average local range scan latency for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_range_latency_p99 |No |range latency p99 (microseconds) |Count |Average |p99 Local range scan latency for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_read_latency |No |read latency average (microseconds) |Count |Average |Average local read latency for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_read_latency_p99 |No |read latency p99 (microseconds) |Count |Average |p99 Local read latency for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_row_cache_hit |No |row cache hit |Count |Total |Number of table row cache hits. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_row_cache_hit_out_of_range |No |row cache hit out of range |Count |Total |Number of table row cache hits that do not satisfy the query filter, thus went to disk. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_row_cache_miss |No |row cache miss |Count |Total |Number of table row cache misses. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_speculative_retries |No |speculative retries |Count |Total |Number of times speculative retries were sent for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_sstables_per_read_histogram |No |sstables per read average |Count |Average |Average number of sstable data files accessed per single partition read. SSTables skipped due to Bloom Filters, min-max key or partition index lookup are not taken into account. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_sstables_per_read_histogram_p99 |No |sstables per read p99 |Count |Average |p99 Number of sstable data files accessed per single partition read. SSTables skipped due to Bloom Filters, min-max key or partition index lookup are not taken into account. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_tombstone_scanned_histogram |No |tombstone scanned average |Count |Average |Average tombstones scanned in queries on this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_tombstone_scanned_histogram_p99 |No |tombstone scanned p99 |Count |Average |p99 Tombstones scanned in queries on this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_total_disk_space_used |No |total disk space used (deprecated) |Bytes |Total |Total disk space used by SSTables belonging to this table, including obsolete ones waiting to be GC'd. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_total_disk_space_used2 |No |total disk space used |Bytes |Total |Total disk space used by SSTables belonging to this table, including obsolete ones waiting to be GC'd. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_view_lock_acquire_time |No |view lock acquire time average |Count |Average |Average time taken acquiring a partition lock for materialized view updates on this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_view_lock_acquire_time_p99 |No |view lock acquire time p99 |Count |Average |p99 Time taken acquiring a partition lock for materialized view updates on this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_view_read_time |No |view read time average |Count |Average |Average time taken during the local read of a materialized view update. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_view_read_time_p99 |No |view read time p99 |Count |Average |p99 Time taken during the local read of a materialized view update. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_waiting_on_free_memtable_space |No |waiting on free memtable space average |Count |Average |Average time spent waiting for free memtable space, either on- or off-heap. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_waiting_on_free_memtable_space_p99 |No |waiting on free memtable space p99 |Count |Average |p99 Time spent waiting for free memtable space, either on- or off-heap. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_write_latency |No |write latency average (microseconds) |Count |Average |Average local write latency for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_table_write_latency_p99 |No |write latency p99 (microseconds) |Count |Average |p99 Local write latency for this table. |cassandra_datacenter, cassandra_node, table, keyspace | -|cassandra_thread_pools_active_tasks |No |active tasks |Count |Total |Number of tasks being actively worked on by this pool. |cassandra_datacenter, cassandra_node, pool_name, pool_type | -|cassandra_thread_pools_currently_blocked_tasks |No |currently blocked tasks (deprecated) |Count |Total |Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked. |cassandra_datacenter, cassandra_node, pool_name, pool_type | -|cassandra_thread_pools_currently_blocked_tasks2 |No |currently blocked tasks |Count |Total |Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked. |cassandra_datacenter, cassandra_node, pool_name, pool_type | -|cassandra_thread_pools_max_pool_size |No |max pool size |Count |Maximum |The maximum number of threads in this pool. |cassandra_datacenter, cassandra_node, pool_name, pool_type | -|cassandra_thread_pools_pending_tasks |No |pending tasks |Count |Total |Number of queued tasks queued up on this pool. |cassandra_datacenter, cassandra_node, pool_name, pool_type | -|cassandra_thread_pools_total_blocked_tasks |No |total blocked tasks |Count |Total |Number of tasks that were blocked due to queue saturation. |cassandra_datacenter, cassandra_node, pool_name, pool_type | -|cpu |No |CPU usage active |Percent |Average |CPU active usage rate |ClusterResourceName, DataCenterResourceName, Address, Kind, CPU | -|disk_utilization |Yes |disk utilization |Percent |Average |Disk utilization rate |ClusterResourceName, DataCenterResourceName, Address | -|diskio_merged_reads |No |disk I/O merged reads |Count |Total |disk I/O merged reads |ClusterResourceName, DataCenterResourceName, Address, Kind | -|diskio_merged_writes |No |disk I/O merged writes |Count |Total |disk I/O merged writes |ClusterResourceName, DataCenterResourceName, Address, Kind | -|diskio_read_bytes |No |disk I/O read bytes |Bytes |Total |disk I/O read bytes |ClusterResourceName, DataCenterResourceName, Address, Kind | -|diskio_read_time |No |disk I/O read time (milliseconds) |MilliSeconds |Total |disk I/O read time (milliseconds) |ClusterResourceName, DataCenterResourceName, Address, Kind | -|diskio_reads |No |disk I/O read counts |Count |Total |disk I/O read counts |ClusterResourceName, DataCenterResourceName, Address, Kind | -|diskio_write_bytes |No |disk I/O write bytes |Bytes |Total |disk I/O write bytes |ClusterResourceName, DataCenterResourceName, Address, Kind | -|diskio_write_time |No |disk I/O write time (milliseconds) |MilliSeconds |Total |disk I/O write time (milliseconds) |ClusterResourceName, DataCenterResourceName, Address, Kind | -|diskio_writes |No |disk I/O write counts |Count |Total |disk I/O write counts |ClusterResourceName, DataCenterResourceName, Address, Kind | -|ethtool_rx_bytes |No |network received bytes |Bytes |Total |network received bytes |ClusterResourceName, DataCenterResourceName, Address, Kind | -|ethtool_rx_packets |No |network received packets |Count |Total |network received packets |ClusterResourceName, DataCenterResourceName, Address, Kind | -|ethtool_tx_bytes |No |network transmitted bytes |Bytes |Total |network transmitted bytes |ClusterResourceName, DataCenterResourceName, Address, Kind | -|ethtool_tx_packets |No |network transmitted packets |Count |Total |network transmitted packets |ClusterResourceName, DataCenterResourceName, Address, Kind | -|percent_mem |Yes |memory utilization |Percent |Average |Memory utilization rate |ClusterResourceName, DataCenterResourceName, Address | --## Microsoft.DocumentDB/DatabaseAccounts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AddRegion |Yes |Region Added |Count |Count |Region Added |Region | -|AutoscaleMaxThroughput |No |Autoscale Max Throughput |Count |Maximum |Autoscale Max Throughput |DatabaseName, CollectionName | -|AvailableStorage |No |(deprecated) Available Storage |Bytes |Total |"Available Storage"will be removed from Azure Monitor at the end of September 2023. Cosmos DB collection storage size is now unlimited. The only restriction is that the storage size for each logical partition key is 20GB. You can enable PartitionKeyStatistics in Diagnostic Log to know the storage consumption for top partition keys. For more info about Cosmos DB storage quota, please check this doc https://docs.microsoft.com/azure/cosmos-db/concepts-limits. After deprecation, the remaining alert rules still defined on the deprecated metric will be automatically disabled post the deprecation date. |CollectionName, DatabaseName, Region | -|CassandraConnectionClosures |No |Cassandra Connection Closures |Count |Total |Number of Cassandra connections that were closed, reported at a 1 minute granularity |APIType, Region, ClosureReason | -|CassandraConnectorAvgReplicationLatency |No |Cassandra Connector Average ReplicationLatency |MilliSeconds |Average |Cassandra Connector Average ReplicationLatency |No Dimensions | -|CassandraConnectorReplicationHealthStatus |No |Cassandra Connector Replication Health Status |Count |Count |Cassandra Connector Replication Health Status |NotStarted, ReplicationInProgress, Error | -|CassandraKeyspaceCreate |No |Cassandra Keyspace Created |Count |Count |Cassandra Keyspace Created |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|CassandraKeyspaceDelete |No |Cassandra Keyspace Deleted |Count |Count |Cassandra Keyspace Deleted |ResourceName, ApiKind, ApiKindResourceType, OperationType | -|CassandraKeyspaceThroughputUpdate |No |Cassandra Keyspace Throughput Updated |Count |Count |Cassandra Keyspace Throughput Updated |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest | -|CassandraKeyspaceUpdate |No |Cassandra Keyspace Updated |Count |Count |Cassandra Keyspace Updated |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|CassandraRequestCharges |No |Cassandra Request Charges |Count |Total |RUs consumed for Cassandra requests made |APIType, DatabaseName, CollectionName, Region, OperationType, ResourceType | -|CassandraRequests |No |Cassandra Requests |Count |Count |Number of Cassandra requests made |APIType, DatabaseName, CollectionName, Region, OperationType, ResourceType, ErrorCode | -|CassandraTableCreate |No |Cassandra Table Created |Count |Count |Cassandra Table Created |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|CassandraTableDelete |No |Cassandra Table Deleted |Count |Count |Cassandra Table Deleted |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, OperationType | -|CassandraTableThroughputUpdate |No |Cassandra Table Throughput Updated |Count |Count |Cassandra Table Throughput Updated |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest | -|CassandraTableUpdate |No |Cassandra Table Updated |Count |Count |Cassandra Table Updated |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|CreateAccount |Yes |Account Created |Count |Count |Account Created |No Dimensions | -|DataUsage |No |Data Usage |Bytes |Total |Total data usage reported at 5 minutes granularity |CollectionName, DatabaseName, Region | -|DedicatedGatewayAverageCPUUsage |No |DedicatedGatewayAverageCPUUsage |Percent |Average |Average CPU usage across dedicated gateway instances |Region, MetricType | -|DedicatedGatewayAverageMemoryUsage |No |DedicatedGatewayAverageMemoryUsage |Bytes |Average |Average memory usage across dedicated gateway instances, which is used for both routing requests and caching data |Region | -|DedicatedGatewayCPUUsage |No |DedicatedGatewayCPUUsage |Percent |Average |CPU usage across dedicated gateway instances |Region, ApplicationType | -|DedicatedGatewayMaximumCPUUsage |No |DedicatedGatewayMaximumCPUUsage |Percent |Average |Average Maximum CPU usage across dedicated gateway instances |Region, MetricType | -|DedicatedGatewayMemoryUsage |No |DedicatedGatewayMemoryUsage |Bytes |Average |Memory usage across dedicated gateway instances |Region, ApplicationType | -|DedicatedGatewayRequests |Yes |DedicatedGatewayRequests |Count |Count |Requests at the dedicated gateway |DatabaseName, CollectionName, CacheExercised, OperationName, Region, CacheHit | -|DeleteAccount |Yes |Account Deleted |Count |Count |Account Deleted |No Dimensions | -|DocumentCount |No |Document Count |Count |Total |Total document count reported at 5 minutes, 1 hour and 1 day granularity |CollectionName, DatabaseName, Region | -|DocumentQuota |No |Document Quota |Bytes |Total |Total storage quota reported at 5 minutes granularity |CollectionName, DatabaseName, Region | -|GremlinDatabaseCreate |No |Gremlin Database Created |Count |Count |Gremlin Database Created |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|GremlinDatabaseDelete |No |Gremlin Database Deleted |Count |Count |Gremlin Database Deleted |ResourceName, ApiKind, ApiKindResourceType, OperationType | -|GremlinDatabaseThroughputUpdate |No |Gremlin Database Throughput Updated |Count |Count |Gremlin Database Throughput Updated |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest | -|GremlinDatabaseUpdate |No |Gremlin Database Updated |Count |Count |Gremlin Database Updated |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|GremlinGraphCreate |No |Gremlin Graph Created |Count |Count |Gremlin Graph Created |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|GremlinGraphDelete |No |Gremlin Graph Deleted |Count |Count |Gremlin Graph Deleted |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, OperationType | -|GremlinGraphThroughputUpdate |No |Gremlin Graph Throughput Updated |Count |Count |Gremlin Graph Throughput Updated |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest | -|GremlinGraphUpdate |No |Gremlin Graph Updated |Count |Count |Gremlin Graph Updated |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|GremlinRequestCharges |No |Gremlin Request Charges |Count |Total |Request Units consumed for Gremlin requests made |APIType, DatabaseName, CollectionName, Region | -|GremlinRequests |No |Gremlin Requests |Count |Count |Number of Gremlin requests made |APIType, DatabaseName, CollectionName, Region, ErrorCode | -|IndexUsage |No |Index Usage |Bytes |Total |Total index usage reported at 5 minutes granularity |CollectionName, DatabaseName, Region | -|IntegratedCacheEvictedEntriesSize |No |IntegratedCacheEvictedEntriesSize |Bytes |Average |Size of the entries evicted from the integrated cache |Region | -|IntegratedCacheItemExpirationCount |No |IntegratedCacheItemExpirationCount |Count |Average |Number of items evicted from the integrated cache due to TTL expiration |Region, CacheEntryType | -|IntegratedCacheItemHitRate |No |IntegratedCacheItemHitRate |Percent |Average |Number of point reads that used the integrated cache divided by number of point reads routed through the dedicated gateway with eventual consistency |Region, CacheEntryType | -|IntegratedCacheQueryExpirationCount |No |IntegratedCacheQueryExpirationCount |Count |Average |Number of queries evicted from the integrated cache due to TTL expiration |Region, CacheEntryType | -|IntegratedCacheQueryHitRate |No |IntegratedCacheQueryHitRate |Percent |Average |Number of queries that used the integrated cache divided by number of queries routed through the dedicated gateway with eventual consistency |Region, CacheEntryType | -|MaterializedViewCatchupGapInMinutes |No |Materialized View Catchup Gap In Minutes |Count |Maximum |Maximum time difference in minutes between data in source container and data propagated to materialized view |Region, TargetContainerName, BuildType | -|MaterializedViewsBuilderAverageCPUUsage |No |Materialized Views Builder Average CPU Usage |Percent |Average |Average CPU usage across materialized view builder instances, which are used for populating data in materialized views |Region, MetricType | -|MaterializedViewsBuilderAverageMemoryUsage |No |Materialized Views Builder Average Memory Usage |Bytes |Average |Average memory usage across materialized view builder instances, which are used for populating data in materialized views |Region | -|MaterializedViewsBuilderMaximumCPUUsage |No |Materialized Views Builder Maximum CPU Usage |Percent |Average |Average Maximum CPU usage across materialized view builder instances, which are used for populating data in materialized views |Region, MetricType | -|MetadataRequests |No |Metadata Requests |Count |Count |Count of metadata requests. Cosmos DB maintains system metadata collection for each account, that allows you to enumerate collections, databases, etc, and their configurations, free of charge. |DatabaseName, CollectionName, Region, StatusCode, Role | -|MongoCollectionCreate |No |Mongo Collection Created |Count |Count |Mongo Collection Created |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|MongoCollectionDelete |No |Mongo Collection Deleted |Count |Count |Mongo Collection Deleted |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, OperationType | -|MongoCollectionThroughputUpdate |No |Mongo Collection Throughput Updated |Count |Count |Mongo Collection Throughput Updated |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest | -|MongoCollectionUpdate |No |Mongo Collection Updated |Count |Count |Mongo Collection Updated |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|MongoDatabaseDelete |No |Mongo Database Deleted |Count |Count |Mongo Database Deleted |ResourceName, ApiKind, ApiKindResourceType, OperationType | -|MongoDatabaseThroughputUpdate |No |Mongo Database Throughput Updated |Count |Count |Mongo Database Throughput Updated |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest | -|MongoDBDatabaseCreate |No |Mongo Database Created |Count |Count |Mongo Database Created |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|MongoDBDatabaseUpdate |No |Mongo Database Updated |Count |Count |Mongo Database Updated |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|MongoRequestCharge |Yes |Mongo Request Charge |Count |Total |Mongo Request Units Consumed |DatabaseName, CollectionName, Region, CommandName, ErrorCode, Status | -|MongoRequests |Yes |Mongo Requests |Count |Count |Number of Mongo Requests Made |DatabaseName, CollectionName, Region, CommandName, ErrorCode, Status | -|NormalizedRUConsumption |No |Normalized RU Consumption |Percent |Maximum |Max RU consumption percentage per minute |CollectionName, DatabaseName, Region, PartitionKeyRangeId, CollectionRid, PhysicalPartitionId | -|OfflineRegion |No |Region Offlined |Count |Count |Region Offlined |Region, StatusCode, Role, OperationName | -|OnlineRegion |No |Region Onlined |Count |Count |Region Onlined |Region, StatusCode, Role, OperationName | -|PhysicalPartitionSizeInfo |No |Physical Partition Size |Bytes |Maximum |Physical Partition Size in bytes |CollectionName, DatabaseName, PhysicalPartitionId, OfferOwnerRid, Region | -|PhysicalPartitionThroughputInfo |No |Physical Partition Throughput |Count |Maximum |Physical Partition Throughput |CollectionName, DatabaseName, PhysicalPartitionId, OfferOwnerRid, Region | -|ProvisionedThroughput |No |Provisioned Throughput |Count |Maximum |Provisioned Throughput |DatabaseName, CollectionName, AllowWrite | -|RegionFailover |Yes |Region Failed Over |Count |Count |Region Failed Over |No Dimensions | -|RemoveRegion |Yes |Region Removed |Count |Count |Region Removed |Region | -|ReplicationLatency |Yes |P99 Replication Latency |MilliSeconds |Average |P99 Replication Latency across source and target regions for geo-enabled account |SourceRegion, TargetRegion | -|ServerSideLatency |No |Server Side Latency |MilliSeconds |Average |Server Side Latency |DatabaseName, CollectionName, Region, ConnectionMode, OperationType, PublicAPIType | -|ServerSideLatencyDirect |No |Server Side Latency Direct |MilliSeconds |Average |Server Side Latency in Direct Connection Mode |DatabaseName, CollectionName, Region, ConnectionMode, OperationType, PublicAPIType, APIType | -|ServerSideLatencyGateway |No |Server Side Latency Gateway |MilliSeconds |Average |Server Side Latency in Gateway Connection Mode |DatabaseName, CollectionName, Region, ConnectionMode, OperationType, PublicAPIType, APIType | -|ServiceAvailability |No |Service Availability |Percent |Average |Account requests availability at one hour, day or month granularity |No Dimensions | -|SqlContainerCreate |No |Sql Container Created |Count |Count |Sql Container Created |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|SqlContainerDelete |No |Sql Container Deleted |Count |Count |Sql Container Deleted |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, OperationType | -|SqlContainerThroughputUpdate |No |Sql Container Throughput Updated |Count |Count |Sql Container Throughput Updated |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest | -|SqlContainerUpdate |No |Sql Container Updated |Count |Count |Sql Container Updated |ResourceName, ChildResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|SqlDatabaseCreate |No |Sql Database Created |Count |Count |Sql Database Created |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|SqlDatabaseDelete |No |Sql Database Deleted |Count |Count |Sql Database Deleted |ResourceName, ApiKind, ApiKindResourceType, OperationType | -|SqlDatabaseThroughputUpdate |No |Sql Database Throughput Updated |Count |Count |Sql Database Throughput Updated |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest | -|SqlDatabaseUpdate |No |Sql Database Updated |Count |Count |Sql Database Updated |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|TableTableCreate |No |AzureTable Table Created |Count |Count |AzureTable Table Created |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|TableTableDelete |No |AzureTable Table Deleted |Count |Count |AzureTable Table Deleted |ResourceName, ApiKind, ApiKindResourceType, OperationType | -|TableTableThroughputUpdate |No |AzureTable Table Throughput Updated |Count |Count |AzureTable Table Throughput Updated |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest | -|TableTableUpdate |No |AzureTable Table Updated |Count |Count |AzureTable Table Updated |ResourceName, ApiKind, ApiKindResourceType, IsThroughputRequest, OperationType | -|TotalRequests |Yes |Total Requests |Count |Count |Number of requests made |DatabaseName, CollectionName, Region, StatusCode, OperationType, Status, CapacityType | -|TotalRequestsPreview |No |Total Requests (Preview) |Count |Count |Number of SQL requests |DatabaseName, CollectionName, Region, StatusCode, OperationType, Status, IsExternal | -|TotalRequestUnits |Yes |Total Request Units |Count |Total |SQL Request Units consumed |DatabaseName, CollectionName, Region, StatusCode, OperationType, Status, CapacityType | -|TotalRequestUnitsPreview |No |Total Request Units (Preview) |Count |Total |Request Units consumed with CapacityType |DatabaseName, CollectionName, Region, StatusCode, OperationType, Status, CapacityType | -|UpdateAccountKeys |Yes |Account Keys Updated |Count |Count |Account Keys Updated |KeyType | -|UpdateAccountNetworkSettings |Yes |Account Network Settings Updated |Count |Count |Account Network Settings Updated |No Dimensions | -|UpdateAccountReplicationSettings |Yes |Account Replication Settings Updated |Count |Count |Account Replication Settings Updated |No Dimensions | -|UpdateDiagnosticsSettings |No |Account Diagnostic Settings Updated |Count |Count |Account Diagnostic Settings Updated |DiagnosticSettingsName, ResourceGroupName | --## Microsoft.DocumentDB/mongoClusters -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|CommittedMemoryPercent |No |Committed Memory percent |Percent |Average |Percentage of Commit Memory Limit allocated by applications on node |ServerName | -|CpuPercent |No |CPU percent |Percent |Average |Percent CPU utilization on node |ServerName | -|IOPS |Yes |IOPS |Count |Average |Disk IO operations per second on node |ServerName | -|MemoryPercent |No |Memory percent |Percent |Average |Percent memory utilization on node |ServerName | -|StoragePercent |No |Storage percent |Percent |Average |Percent of available storage used on node |ServerName | -|StorageUsed |No |Storage used |Bytes |Average |Quantity of available storage used on node |ServerName | --## microsoft.edgezones/edgezones -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|DiskStorageIOPSUsage |No |Disk IOPS |CountPerSecond |Average |The total IOPS generated by Managed Disks in Azure Edge Zone Enterprise site. |No Dimensions | -|DiskStorageUsedSizeUsage |Yes |Disk Usage Percentage |Percent |Average |The utilization of the Managed Disk capacity in Azure Edge Zone Enterprise site. |No Dimensions | -|RegionSiteConnectivity |Yes |Region Site Connectivity |Count |Average |The status of an Edge Zone Enterprise link connection to its Azure region |No Dimensions | -|TotalDiskStorageSizeCapacity |Yes |Total Disk Capacity |Bytes |Average |The total capacity of Managed Disk in Azure Edge Zone Enterprise site. |No Dimensions | -|TotalVcoreCapacity |Yes |Total VCore Capacity |Count |Average |The total capacity of the General-Purpose Compute vcore in Edge Zone Enterprise site. |No Dimensions | -|VcoresUsage |Yes |Vcore Usage Percentage |Percent |Average |The utilization of the General-Purpose Compute vcores in Edge Zone Enterprise site |No Dimensions | --## Microsoft.EventGrid/domains -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AdvancedFilterEvaluationCount |Yes |Advanced Filter Evaluations |Count |Total |Total advanced filters evaluated across event subscriptions for this topic. |Topic, EventSubscriptionName, DomainEventSubscriptionName | -|DeadLetteredCount |Yes |Dead Lettered Events |Count |Total |Total dead lettered events matching to this event subscription |Topic, EventSubscriptionName, DomainEventSubscriptionName, DeadLetterReason | -|DeliveryAttemptFailCount |No |Delivery Failed Events |Count |Total |Total events failed to deliver to this event subscription |Topic, EventSubscriptionName, DomainEventSubscriptionName, Error, ErrorType | -|DeliverySuccessCount |Yes |Delivered Events |Count |Total |Total events delivered to this event subscription |Topic, EventSubscriptionName, DomainEventSubscriptionName | -|DestinationProcessingDurationInMs |No |Destination Processing Duration |MilliSeconds |Average |Destination processing duration in milliseconds |Topic, EventSubscriptionName, DomainEventSubscriptionName | -|DroppedEventCount |Yes |Dropped Events |Count |Total |Total dropped events matching to this event subscription |Topic, EventSubscriptionName, DomainEventSubscriptionName, DropReason | -|MatchedEventCount |Yes |Matched Events |Count |Total |Total events matched to this event subscription |Topic, EventSubscriptionName, DomainEventSubscriptionName | -|PublishFailCount |Yes |Publish Failed Events |Count |Total |Total events failed to publish to this topic |Topic, ErrorType, Error | -|PublishSuccessCount |Yes |Published Events |Count |Total |Total events published to this topic |Topic | -|PublishSuccessLatencyInMs |Yes |Publish Success Latency |MilliSeconds |Total |Publish success latency in milliseconds |No Dimensions | --## Microsoft.EventGrid/eventSubscriptions -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|DeadLetteredCount |Yes |Dead Lettered Events |Count |Total |Total dead lettered events matching to this event subscription |DeadLetterReason | -|DeliveryAttemptFailCount |No |Delivery Failed Events |Count |Total |Total events failed to deliver to this event subscription |Error, ErrorType | -|DeliverySuccessCount |Yes |Delivered Events |Count |Total |Total events delivered to this event subscription |No Dimensions | -|DestinationProcessingDurationInMs |No |Destination Processing Duration |Milliseconds |Average |Destination processing duration in milliseconds |No Dimensions | -|DroppedEventCount |Yes |Dropped Events |Count |Total |Total dropped events matching to this event subscription |DropReason | -|MatchedEventCount |Yes |Matched Events |Count |Total |Total events matched to this event subscription |No Dimensions | --## Microsoft.EventGrid/extensionTopics -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|PublishFailCount |Yes |Publish Failed Events |Count |Total |Total events failed to publish to this topic |ErrorType, Error | -|PublishSuccessCount |Yes |Published Events |Count |Total |Total events published to this topic |No Dimensions | -|PublishSuccessLatencyInMs |Yes |Publish Success Latency |Milliseconds |Total |Publish success latency in milliseconds |No Dimensions | -|UnmatchedEventCount |Yes |Unmatched Events |Count |Total |Total events not matching any of the event subscriptions for this topic |No Dimensions | --## Microsoft.EventGrid/partnerNamespaces -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|PublishFailCount |Yes |Publish Failed Events |Count |Total |Total events failed to publish to this partner namespace |ErrorType, Error | -|PublishSuccessCount |Yes |Published Events |Count |Total |Total events published to this partner namespace |No Dimensions | -|PublishSuccessLatencyInMs |Yes |Publish Success Latency |MilliSeconds |Total |Publish success latency in milliseconds |No Dimensions | -|UnmatchedEventCount |Yes |Unmatched Events |Count |Total |Total events not matching any of the partner topics |No Dimensions | --## Microsoft.EventGrid/partnerTopics -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AdvancedFilterEvaluationCount |Yes |Advanced Filter Evaluations |Count |Total |Total advanced filters evaluated across event subscriptions for this partner topic. |EventSubscriptionName | -|DeadLetteredCount |Yes |Dead Lettered Events |Count |Total |Total dead lettered events matching to this event subscription |DeadLetterReason, EventSubscriptionName | -|DeliveryAttemptFailCount |No |Delivery Failed Events |Count |Total |Total events failed to deliver to this event subscription |Error, ErrorType, EventSubscriptionName | -|DeliverySuccessCount |Yes |Delivered Events |Count |Total |Total events delivered to this event subscription |EventSubscriptionName | -|DestinationProcessingDurationInMs |No |Destination Processing Duration |MilliSeconds |Average |Destination processing duration in milliseconds |EventSubscriptionName | -|DroppedEventCount |Yes |Dropped Events |Count |Total |Total dropped events matching to this event subscription |DropReason, EventSubscriptionName | -|MatchedEventCount |Yes |Matched Events |Count |Total |Total events matched to this event subscription |EventSubscriptionName | -|PublishSuccessCount |Yes |Published Events |Count |Total |Total events published to this partner topic |No Dimensions | -|UnmatchedEventCount |Yes |Unmatched Events |Count |Total |Total events not matching any of the event subscriptions for this partner topic |No Dimensions | --## Microsoft.EventGrid/systemTopics -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AdvancedFilterEvaluationCount |Yes |Advanced Filter Evaluations |Count |Total |Total advanced filters evaluated across event subscriptions for this topic. |EventSubscriptionName | -|DeadLetteredCount |Yes |Dead Lettered Events |Count |Total |Total dead lettered events matching to this event subscription |DeadLetterReason, EventSubscriptionName | -|DeliveryAttemptFailCount |No |Delivery Failed Events |Count |Total |Total events failed to deliver to this event subscription |Error, ErrorType, EventSubscriptionName | -|DeliverySuccessCount |Yes |Delivered Events |Count |Total |Total events delivered to this event subscription |EventSubscriptionName | -|DestinationProcessingDurationInMs |No |Destination Processing Duration |Milliseconds |Average |Destination processing duration in milliseconds |EventSubscriptionName | -|DroppedEventCount |Yes |Dropped Events |Count |Total |Total dropped events matching to this event subscription |DropReason, EventSubscriptionName | -|MatchedEventCount |Yes |Matched Events |Count |Total |Total events matched to this event subscription |EventSubscriptionName | -|PublishFailCount |Yes |Publish Failed Events |Count |Total |Total events failed to publish to this topic |ErrorType, Error | -|PublishSuccessCount |Yes |Published Events |Count |Total |Total events published to this topic |No Dimensions | -|PublishSuccessLatencyInMs |Yes |Publish Success Latency |Milliseconds |Total |Publish success latency in milliseconds |No Dimensions | -|UnmatchedEventCount |Yes |Unmatched Events |Count |Total |Total events not matching any of the event subscriptions for this topic |No Dimensions | --## Microsoft.EventGrid/topics -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AdvancedFilterEvaluationCount |Yes |Advanced Filter Evaluations |Count |Total |Total advanced filters evaluated across event subscriptions for this topic. |EventSubscriptionName | -|DeadLetteredCount |Yes |Dead Lettered Events |Count |Total |Total dead lettered events matching to this event subscription |DeadLetterReason, EventSubscriptionName | -|DeliveryAttemptFailCount |No |Delivery Failed Events |Count |Total |Total events failed to deliver to this event subscription |Error, ErrorType, EventSubscriptionName | -|DeliverySuccessCount |Yes |Delivered Events |Count |Total |Total events delivered to this event subscription |EventSubscriptionName | -|DestinationProcessingDurationInMs |No |Destination Processing Duration |MilliSeconds |Average |Destination processing duration in milliseconds |EventSubscriptionName | -|DroppedEventCount |Yes |Dropped Events |Count |Total |Total dropped events matching to this event subscription |DropReason, EventSubscriptionName | -|MatchedEventCount |Yes |Matched Events |Count |Total |Total events matched to this event subscription |EventSubscriptionName | -|PublishFailCount |Yes |Publish Failed Events |Count |Total |Total events failed to publish to this topic |ErrorType, Error | -|PublishSuccessCount |Yes |Published Events |Count |Total |Total events published to this topic |No Dimensions | -|PublishSuccessLatencyInMs |Yes |Publish Success Latency |MilliSeconds |Total |Publish success latency in milliseconds |No Dimensions | -|UnmatchedEventCount |Yes |Unmatched Events |Count |Total |Total events not matching any of the event subscriptions for this topic |No Dimensions | --## Microsoft.EventHub/clusters -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ActiveConnections |No |ActiveConnections |Count |Average |Total Active Connections for Microsoft.EventHub. |No Dimensions | -|AvailableMemory |No |Available Memory |Percent |Maximum |Available memory for the Event Hub Cluster as a percentage of total memory. |Role | -|CaptureBacklog |No |Capture Backlog. |Count |Total |Capture Backlog for Microsoft.EventHub. |No Dimensions | -|CapturedBytes |No |Captured Bytes. |Bytes |Total |Captured Bytes for Microsoft.EventHub. |No Dimensions | -|CapturedMessages |No |Captured Messages. |Count |Total |Captured Messages for Microsoft.EventHub. |No Dimensions | -|ConnectionsClosed |No |Connections Closed. |Count |Average |Connections Closed for Microsoft.EventHub. |No Dimensions | -|ConnectionsOpened |No |Connections Opened. |Count |Average |Connections Opened for Microsoft.EventHub. |No Dimensions | -|CPU |No |CPU |Percent |Maximum |CPU utilization for the Event Hub Cluster as a percentage |Role | -|IncomingBytes |Yes |Incoming Bytes. |Bytes |Total |Incoming Bytes for Microsoft.EventHub. |No Dimensions | -|IncomingMessages |Yes |Incoming Messages |Count |Total |Incoming Messages for Microsoft.EventHub. |No Dimensions | -|IncomingRequests |Yes |Incoming Requests |Count |Total |Incoming Requests for Microsoft.EventHub. |No Dimensions | -|OutgoingBytes |Yes |Outgoing Bytes. |Bytes |Total |Outgoing Bytes for Microsoft.EventHub. |No Dimensions | -|OutgoingMessages |Yes |Outgoing Messages |Count |Total |Outgoing Messages for Microsoft.EventHub. |No Dimensions | -|QuotaExceededErrors |No |Quota Exceeded Errors. |Count |Total |Quota Exceeded Errors for Microsoft.EventHub. |OperationResult | -|ServerErrors |No |Server Errors. |Count |Total |Server Errors for Microsoft.EventHub. |OperationResult | -|Size |No |Size |Bytes |Average |Size of an EventHub in Bytes. |Role | -|SuccessfulRequests |No |Successful Requests |Count |Total |Successful Requests for Microsoft.EventHub. |OperationResult | -|ThrottledRequests |No |Throttled Requests. |Count |Total |Throttled Requests for Microsoft.EventHub. |OperationResult | -|UserErrors |No |User Errors. |Count |Total |User Errors for Microsoft.EventHub. |OperationResult | --## Microsoft.EventHub/Namespaces -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ActiveConnections |No |ActiveConnections |Count |Maximum |Total Active Connections for Microsoft.EventHub. |No Dimensions | -|CaptureBacklog |No |Capture Backlog. |Count |Total |Capture Backlog for Microsoft.EventHub. |EntityName | -|CapturedBytes |No |Captured Bytes. |Bytes |Total |Captured Bytes for Microsoft.EventHub. |EntityName | -|CapturedMessages |No |Captured Messages. |Count |Total |Captured Messages for Microsoft.EventHub. |EntityName | -|ConnectionsClosed |No |Connections Closed. |Count |Maximum |Connections Closed for Microsoft.EventHub. |EntityName | -|ConnectionsOpened |No |Connections Opened. |Count |Maximum |Connections Opened for Microsoft.EventHub. |EntityName | -|EHABL |Yes |Archive backlog messages (Deprecated) |Count |Total |Event Hub archive messages in backlog for a namespace (Deprecated) |No Dimensions | -|EHAMBS |Yes |Archive message throughput (Deprecated) |Bytes |Total |Event Hub archived message throughput in a namespace (Deprecated) |No Dimensions | -|EHAMSGS |Yes |Archive messages (Deprecated) |Count |Total |Event Hub archived messages in a namespace (Deprecated) |No Dimensions | -|EHINBYTES |Yes |Incoming bytes (Deprecated) |Bytes |Total |Event Hub incoming message throughput for a namespace (Deprecated) |No Dimensions | -|EHINMBS |Yes |Incoming bytes (obsolete) (Deprecated) |Bytes |Total |Event Hub incoming message throughput for a namespace. This metric is deprecated. Please use Incoming bytes metric instead (Deprecated) |No Dimensions | -|EHINMSGS |Yes |Incoming Messages (Deprecated) |Count |Total |Total incoming messages for a namespace (Deprecated) |No Dimensions | -|EHOUTBYTES |Yes |Outgoing bytes (Deprecated) |Bytes |Total |Event Hub outgoing message throughput for a namespace (Deprecated) |No Dimensions | -|EHOUTMBS |Yes |Outgoing bytes (obsolete) (Deprecated) |Bytes |Total |Event Hub outgoing message throughput for a namespace. This metric is deprecated. Please use Outgoing bytes metric instead (Deprecated) |No Dimensions | -|EHOUTMSGS |Yes |Outgoing Messages (Deprecated) |Count |Total |Total outgoing messages for a namespace (Deprecated) |No Dimensions | -|FAILREQ |Yes |Failed Requests (Deprecated) |Count |Total |Total failed requests for a namespace (Deprecated) |No Dimensions | -|IncomingBytes |Yes |Incoming Bytes. |Bytes |Total |Incoming Bytes for Microsoft.EventHub. |EntityName | -|IncomingMessages |Yes |Incoming Messages |Count |Total |Incoming Messages for Microsoft.EventHub. |EntityName | -|IncomingRequests |Yes |Incoming Requests |Count |Total |Incoming Requests for Microsoft.EventHub. |EntityName | -|INMSGS |Yes |Incoming Messages (obsolete) (Deprecated) |Count |Total |Total incoming messages for a namespace. This metric is deprecated. Please use Incoming Messages metric instead (Deprecated) |No Dimensions | -|INREQS |Yes |Incoming Requests (Deprecated) |Count |Total |Total incoming send requests for a namespace (Deprecated) |No Dimensions | -|INTERR |Yes |Internal Server Errors (Deprecated) |Count |Total |Total internal server errors for a namespace (Deprecated) |No Dimensions | -|MISCERR |Yes |Other Errors (Deprecated) |Count |Total |Total failed requests for a namespace (Deprecated) |No Dimensions | -|NamespaceCpuUsage |No |CPU |Percent |Maximum |CPU usage metric for Premium SKU namespaces. |Replica | -|NamespaceMemoryUsage |No |Memory Usage |Percent |Maximum |Memory usage metric for Premium SKU namespaces. |Replica | -|OutgoingBytes |Yes |Outgoing Bytes. |Bytes |Total |Outgoing Bytes for Microsoft.EventHub. |EntityName | -|OutgoingMessages |Yes |Outgoing Messages |Count |Total |Outgoing Messages for Microsoft.EventHub. |EntityName | -|OUTMSGS |Yes |Outgoing Messages (obsolete) (Deprecated) |Count |Total |Total outgoing messages for a namespace. This metric is deprecated. Please use Outgoing Messages metric instead (Deprecated) |No Dimensions | -|QuotaExceededErrors |No |Quota Exceeded Errors. |Count |Total |Quota Exceeded Errors for Microsoft.EventHub. |EntityName, OperationResult | -|ServerErrors |No |Server Errors. |Count |Total |Server Errors for Microsoft.EventHub. |EntityName, OperationResult | -|Size |No |Size |Bytes |Average |Size of an EventHub in Bytes. |EntityName | -|SuccessfulRequests |No |Successful Requests |Count |Total |Successful Requests for Microsoft.EventHub. |EntityName, OperationResult | -|SUCCREQ |Yes |Successful Requests (Deprecated) |Count |Total |Total successful requests for a namespace (Deprecated) |No Dimensions | -|SVRBSY |Yes |Server Busy Errors (Deprecated) |Count |Total |Total server busy errors for a namespace (Deprecated) |No Dimensions | -|ThrottledRequests |No |Throttled Requests. |Count |Total |Throttled Requests for Microsoft.EventHub. |EntityName, OperationResult | -|UserErrors |No |User Errors. |Count |Total |User Errors for Microsoft.EventHub. |EntityName, OperationResult | --## Microsoft.HDInsight/clusters -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|CategorizedGatewayRequests |Yes |Categorized Gateway Requests |Count |Total |Number of gateway requests by categories (1xx/2xx/3xx/4xx/5xx) |HttpStatus | -|GatewayRequests |Yes |Gateway Requests |Count |Total |Number of gateway requests |HttpStatus | -|KafkaRestProxy.ConsumerRequest.m1_delta |Yes |REST proxy Consumer RequestThroughput |CountPerSecond |Total |Number of consumer requests to Kafka REST proxy |Machine, Topic | -|KafkaRestProxy.ConsumerRequestFail.m1_delta |Yes |REST proxy Consumer Unsuccessful Requests |CountPerSecond |Total |Consumer request exceptions |Machine, Topic | -|KafkaRestProxy.ConsumerRequestTime.p95 |Yes |REST proxy Consumer RequestLatency |Milliseconds |Average |Message latency in a consumer request through Kafka REST proxy |Machine, Topic | -|KafkaRestProxy.ConsumerRequestWaitingInQueueTime.p95 |Yes |REST proxy Consumer Request Backlog |Milliseconds |Average |Consumer REST proxy queue length |Machine, Topic | -|KafkaRestProxy.MessagesIn.m1_delta |Yes |REST proxy Producer MessageThroughput |CountPerSecond |Total |Number of producer messages through Kafka REST proxy |Machine, Topic | -|KafkaRestProxy.MessagesOut.m1_delta |Yes |REST proxy Consumer MessageThroughput |CountPerSecond |Total |Number of consumer messages through Kafka REST proxy |Machine, Topic | -|KafkaRestProxy.OpenConnections |Yes |REST proxy ConcurrentConnections |Count |Total |Number of concurrent connections through Kafka REST proxy |Machine, Topic | -|KafkaRestProxy.ProducerRequest.m1_delta |Yes |REST proxy Producer RequestThroughput |CountPerSecond |Total |Number of producer requests to Kafka REST proxy |Machine, Topic | -|KafkaRestProxy.ProducerRequestFail.m1_delta |Yes |REST proxy Producer Unsuccessful Requests |CountPerSecond |Total |Producer request exceptions |Machine, Topic | -|KafkaRestProxy.ProducerRequestTime.p95 |Yes |REST proxy Producer RequestLatency |Milliseconds |Average |Message latency in a producer request through Kafka REST proxy |Machine, Topic | -|KafkaRestProxy.ProducerRequestWaitingInQueueTime.p95 |Yes |REST proxy Producer Request Backlog |Milliseconds |Average |Producer REST proxy queue length |Machine, Topic | -|NumActiveWorkers |Yes |Number of Active Workers |Count |Maximum |Number of Active Workers |MetricName | -|PendingCPU |Yes |Pending CPU |Count |Maximum |Pending CPU Requests in YARN |No Dimensions | -|PendingMemory |Yes |Pending Memory |Count |Maximum |Pending Memory Requests in YARN |No Dimensions | --## Microsoft.HealthcareApis/services -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Availability |Yes |Availability |Percent |Average |The availability rate of the service. |No Dimensions | -|CosmosDbCollectionSize |Yes |Cosmos DB Collection Size |Bytes |Total |The size of the backing Cosmos DB collection, in bytes. |No Dimensions | -|CosmosDbIndexSize |Yes |Cosmos DB Index Size |Bytes |Total |The size of the backing Cosmos DB collection's index, in bytes. |No Dimensions | -|CosmosDbRequestCharge |Yes |Cosmos DB RU usage |Count |Total |The RU usage of requests to the service's backing Cosmos DB. |Operation, ResourceType | -|CosmosDbRequests |Yes |Service Cosmos DB requests |Count |Sum |The total number of requests made to a service's backing Cosmos DB. |Operation, ResourceType | -|CosmosDbThrottleRate |Yes |Service Cosmos DB throttle rate |Count |Sum |The total number of 429 responses from a service's backing Cosmos DB. |Operation, ResourceType | -|IoTConnectorDeviceEvent |Yes |Number of Incoming Messages |Count |Sum |The total number of messages received by the Azure IoT Connector for FHIR prior to any normalization. |Operation, ConnectorName | -|IoTConnectorDeviceEventProcessingLatencyMs |Yes |Average Normalize Stage Latency |Milliseconds |Average |The average time between an event's ingestion time and the time the event is processed for normalization. |Operation, ConnectorName | -|IoTConnectorMeasurement |Yes |Number of Measurements |Count |Sum |The number of normalized value readings received by the FHIR conversion stage of the Azure IoT Connector for FHIR. |Operation, ConnectorName | -|IoTConnectorMeasurementGroup |Yes |Number of Message Groups |Count |Sum |The total number of unique groupings of measurements across type, device, patient, and configured time period generated by the FHIR conversion stage. |Operation, ConnectorName | -|IoTConnectorMeasurementIngestionLatencyMs |Yes |Average Group Stage Latency |Milliseconds |Average |The time period between when the IoT Connector received the device data and when the data is processed by the FHIR conversion stage. |Operation, ConnectorName | -|IoTConnectorNormalizedEvent |Yes |Number of Normalized Messages |Count |Sum |The total number of mapped normalized values outputted from the normalization stage of the the Azure IoT Connector for FHIR. |Operation, ConnectorName | -|IoTConnectorTotalErrors |Yes |Total Error Count |Count |Sum |The total number of errors logged by the Azure IoT Connector for FHIR |Name, Operation, ErrorType, ErrorSeverity, ConnectorName | -|TotalErrors |Yes |Total Errors |Count |Sum |The total number of internal server errors encountered by the service. |Protocol, StatusCode, StatusCodeClass, StatusCodeText | -|TotalLatency |Yes |Total Latency |Milliseconds |Average |The response latency of the service. |Protocol | -|TotalRequests |Yes |Total Requests |Count |Sum |The total number of requests received by the service. |Protocol | --## Microsoft.HealthcareApis/workspaces/analyticsconnectors -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AnalyticsConnectorHealthStatus |Yes |Analytics Connector Health Status |Count |Sum |The health status of analytics connector |Operation, Component | -|AnalyticsConnectorResourceLatency |Yes |Analytics Connector Process Latency |Milliseconds |Average |The response latency of the service. |No Dimensions | -|AnalyticsConnectorSuccessfulDataSize |Yes |Analytics Connector Successful Data Size |Count |Sum |The size of data successfully processed by the analytics connector |No Dimensions | -|AnalyticsConnectorSuccessfulResourceCount |Yes |Analytics Connector Successful Resource Count |Count |Sum |The amount of data successfully processed by the analytics connector |No Dimensions | -|AnalyticsConnectorTotalError |Yes |Analytics Connector Total Error Count |Count |Sum |The total number of errors logged by the analytics connector |ErrorType, Operation | --## Microsoft.HealthcareApis/workspaces/fhirservices -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Availability |Yes |Availability |Percent |Average |The availability rate of the service. |No Dimensions | -|TotalDataSize |Yes |Total Data Size |Bytes |Total |Total size of the data in the backing database, in bytes. |No Dimensions | -|TotalErrors |Yes |Total Errors |Count |Sum |The total number of internal server errors encountered by the service. |Protocol, StatusCode, StatusCodeClass, StatusCodeText | -|TotalLatency |Yes |Total Latency |Milliseconds |Average |The response latency of the service. |Protocol | -|TotalRequests |Yes |Total Requests |Count |Sum |The total number of requests received by the service. |Protocol | --## Microsoft.HealthcareApis/workspaces/iotconnectors -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|DeviceEvent |Yes |Number of Incoming Messages |Count |Sum |The total number of messages received by the MedTech service prior to any normalization |Operation, ResourceName | -|DeviceEventProcessingLatencyMs |Yes |Average Normalize Stage Latency |Milliseconds |Average |The average time between an event's ingestion time and the time the event is processed for normalization. |Operation, ResourceName | -|DroppedEvent |Yes |Number of Dropped Events |Count |Sum |The number of input device events with no normalized events |Operation, ResourceName | -|FhirResourceSaved |Yes |Number of FHIR resources saved |Count |Sum |The total number of FHIR resources saved by the MedTech service |Operation, ResourceName, Name | -|IotConnectorStatus |Yes |MedTech Service Health Status |Percent |Average |Health checks which indicate the overall health of the MedTech service |Operation, ResourceName, HealthCheckName | -|Measurement |Yes |Number of Measurements |Count |Sum |The number of normalized value readings received by the FHIR conversion stage of the MedTech service |Operation, ResourceName | -|MeasurementGroup |Yes |Number of Message Groups |Count |Sum |The total number of unique groupings of measurements across type, device, patient, and configured time period generated by the FHIR conversion stage. |Operation, ResourceName | -|MeasurementIngestionLatencyMs |Yes |Average Group Stage Latency |Milliseconds |Average |The time period between when the MedTech service received the device data and when the data is processed by the FHIR conversion stage. |Operation, ResourceName | -|NormalizedEvent |Yes |Number of Normalized Messages |Count |Sum |The total number of mapped normalized values outputted from the normalization stage of the MedTech service |Operation, ResourceName | -|TotalErrors |Yes |Total Error Count |Count |Sum |The total number of errors logged by the MedTech service |Name, Operation, ErrorType, ErrorSeverity, ResourceName | --## Microsoft.HybridContainerService/provisionedClusters -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|capacity_cpu_cores |Yes |Total number of cpu cores in a provisioned cluster |Count |Average |Total number of cpu cores in a provisioned cluster |No Dimensions | --## microsoft.hybridnetwork/networkfunctions -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|HyperVVirtualProcessorUtilization |Yes |Average CPU Utilization |Percent |Average |Total average percentage of virtual CPU utilization at one minute interval. The total number of virtual CPU is based on user configured value in SKU definition. Further filter can be applied based on RoleName defined in SKU. |InstanceName | --## microsoft.hybridnetwork/virtualnetworkfunctions -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|HyperVVirtualProcessorUtilization |Yes |Average CPU Utilization |Percent |Average |Total average percentage of virtual CPU utilization at one minute interval. The total number of virtual CPU is based on user configured value in SKU definition. Further filter can be applied based on RoleName defined in SKU. |InstanceName | --## microsoft.insights/autoscalesettings -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|MetricThreshold |Yes |Metric Threshold |Count |Average |The configured autoscale threshold when autoscale ran. |MetricTriggerRule | -|ObservedCapacity |Yes |Observed Capacity |Count |Average |The capacity reported to autoscale when it executed. |No Dimensions | -|ObservedMetricValue |Yes |Observed Metric Value |Count |Average |The value computed by autoscale when executed |MetricTriggerSource | -|ScaleActionsInitiated |Yes |Scale Actions Initiated |Count |Total |The direction of the scale operation. |ScaleDirection | --## microsoft.insights/components -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|availabilityResults/availabilityPercentage |Yes |Availability |Percent |Average |Percentage of successfully completed availability tests |availabilityResult/name, availabilityResult/location | -|availabilityResults/count |No |Availability tests |Count |Count |Count of availability tests |availabilityResult/name, availabilityResult/location, availabilityResult/success | -|availabilityResults/duration |Yes |Availability test duration |MilliSeconds |Average |Availability test duration |availabilityResult/name, availabilityResult/location, availabilityResult/success | -|browserTimings/networkDuration |Yes |Page load network connect time |MilliSeconds |Average |Time between user request and network connection. Includes DNS lookup and transport connection. |No Dimensions | -|browserTimings/processingDuration |Yes |Client processing time |MilliSeconds |Average |Time between receiving the last byte of a document until the DOM is loaded. Async requests may still be processing. |No Dimensions | -|browserTimings/receiveDuration |Yes |Receiving response time |MilliSeconds |Average |Time between the first and last bytes, or until disconnection. |No Dimensions | -|browserTimings/sendDuration |Yes |Send request time |MilliSeconds |Average |Time between network connection and receiving the first byte. |No Dimensions | -|browserTimings/totalDuration |Yes |Browser page load time |MilliSeconds |Average |Time from user request until DOM, stylesheets, scripts and images are loaded. |No Dimensions | -|dependencies/count |No |Dependency calls |Count |Count |Count of calls made by the application to external resources. |dependency/type, dependency/performanceBucket, dependency/success, dependency/target, dependency/resultCode, operation/synthetic, cloud/roleInstance, cloud/roleName | -|dependencies/duration |Yes |Dependency duration |MilliSeconds |Average |Duration of calls made by the application to external resources. |dependency/type, dependency/performanceBucket, dependency/success, dependency/target, dependency/resultCode, operation/synthetic, cloud/roleInstance, cloud/roleName | -|dependencies/failed |No |Dependency call failures |Count |Count |Count of failed dependency calls made by the application to external resources. |dependency/type, dependency/performanceBucket, dependency/success, dependency/target, dependency/resultCode, operation/synthetic, cloud/roleInstance, cloud/roleName | -|exceptions/browser |No |Browser exceptions |Count |Count |Count of uncaught exceptions thrown in the browser. |client/isServer, cloud/roleName | -|exceptions/count |Yes |Exceptions |Count |Count |Combined count of all uncaught exceptions. |cloud/roleName, cloud/roleInstance, client/type | -|exceptions/server |No |Server exceptions |Count |Count |Count of uncaught exceptions thrown in the server application. |client/isServer, cloud/roleName, cloud/roleInstance | -|pageViews/count |Yes |Page views |Count |Count |Count of page views. |operation/synthetic, cloud/roleName | -|pageViews/duration |Yes |Page view load time |MilliSeconds |Average |Page view load time |operation/synthetic, cloud/roleName | -|performanceCounters/exceptionsPerSecond |Yes |Exception rate |CountPerSecond |Average |Count of handled and unhandled exceptions reported to windows, including .NET exceptions and unmanaged exceptions that are converted into .NET exceptions. |cloud/roleInstance | -|performanceCounters/memoryAvailableBytes |Yes |Available memory |Bytes |Average |Physical memory immediately available for allocation to a process or for system use. |cloud/roleInstance | -|performanceCounters/processCpuPercentage |Yes |Process CPU |Percent |Average |The percentage of elapsed time that all process threads used the processor to execute instructions. This can vary between 0 to 100. This metric indicates the performance of w3wp process alone. |cloud/roleInstance | -|performanceCounters/processIOBytesPerSecond |Yes |Process IO rate |BytesPerSecond |Average |Total bytes per second read and written to files, network and devices. |cloud/roleInstance | -|performanceCounters/processorCpuPercentage |Yes |Processor time |Percent |Average |The percentage of time that the processor spends in non-idle threads. |cloud/roleInstance | -|performanceCounters/processPrivateBytes |Yes |Process private bytes |Bytes |Average |Memory exclusively assigned to the monitored application's processes. |cloud/roleInstance | -|performanceCounters/requestExecutionTime |Yes |HTTP request execution time |MilliSeconds |Average |Execution time of the most recent request. |cloud/roleInstance | -|performanceCounters/requestsInQueue |Yes |HTTP requests in application queue |Count |Average |Length of the application request queue. |cloud/roleInstance | -|performanceCounters/requestsPerSecond |Yes |HTTP request rate |CountPerSecond |Average |Rate of all requests to the application per second from ASP.NET. |cloud/roleInstance | -|requests/count |No |Server requests |Count |Count |Count of HTTP requests completed. |request/performanceBucket, request/resultCode, operation/synthetic, cloud/roleInstance, request/success, cloud/roleName | -|requests/duration |Yes |Server response time |MilliSeconds |Average |Time between receiving an HTTP request and finishing sending the response. |request/performanceBucket, request/resultCode, operation/synthetic, cloud/roleInstance, request/success, cloud/roleName | -|requests/failed |No |Failed requests |Count |Count |Count of HTTP requests marked as failed. In most cases these are requests with a response code >= 400 and not equal to 401. |request/performanceBucket, request/resultCode, request/success, operation/synthetic, cloud/roleInstance, cloud/roleName | -|requests/rate |No |Server request rate |CountPerSecond |Average |Rate of server requests per second |request/performanceBucket, request/resultCode, operation/synthetic, cloud/roleInstance, request/success, cloud/roleName | -|traces/count |Yes |Traces |Count |Count |Trace document count |trace/severityLevel, operation/synthetic, cloud/roleName, cloud/roleInstance | --## Microsoft.IoTCentral/IoTApps -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|c2d.commands.failure |Yes |Failed command invocations |Count |Total |The count of all failed command requests initiated from IoT Central |No Dimensions | -|c2d.commands.requestSize |Yes |Request size of command invocations |Bytes |Total |Request size of all command requests initiated from IoT Central |No Dimensions | -|c2d.commands.responseSize |Yes |Response size of command invocations |Bytes |Total |Response size of all command responses initiated from IoT Central |No Dimensions | -|c2d.commands.success |Yes |Successful command invocations |Count |Total |The count of all successful command requests initiated from IoT Central |No Dimensions | -|c2d.property.read.failure |Yes |Failed Device Property Reads from IoT Central |Count |Total |The count of all failed property reads initiated from IoT Central |No Dimensions | -|c2d.property.read.success |Yes |Successful Device Property Reads from IoT Central |Count |Total |The count of all successful property reads initiated from IoT Central |No Dimensions | -|c2d.property.update.failure |Yes |Failed Device Property Updates from IoT Central |Count |Total |The count of all failed property updates initiated from IoT Central |No Dimensions | -|c2d.property.update.success |Yes |Successful Device Property Updates from IoT Central |Count |Total |The count of all successful property updates initiated from IoT Central |No Dimensions | -|connectedDeviceCount |No |Total Connected Devices |Count |Average |Number of devices connected to IoT Central |No Dimensions | -|d2c.property.read.failure |Yes |Failed Device Property Reads from Devices |Count |Total |The count of all failed property reads initiated from devices |No Dimensions | -|d2c.property.read.success |Yes |Successful Device Property Reads from Devices |Count |Total |The count of all successful property reads initiated from devices |No Dimensions | -|d2c.property.update.failure |Yes |Failed Device Property Updates from Devices |Count |Total |The count of all failed property updates initiated from devices |No Dimensions | -|d2c.property.update.success |Yes |Successful Device Property Updates from Devices |Count |Total |The count of all successful property updates initiated from devices |No Dimensions | -|d2c.telemetry.ingress.allProtocol |Yes |Total Telemetry Message Send Attempts |Count |Total |Number of device-to-cloud telemetry messages attempted to be sent to the IoT Central application |No Dimensions | -|d2c.telemetry.ingress.success |Yes |Total Telemetry Messages Sent |Count |Total |Number of device-to-cloud telemetry messages successfully sent to the IoT Central application |No Dimensions | -|dataExport.error |Yes |Data Export Errors |Count |Total |Number of errors encountered for data export |exportId, exportDisplayName, destinationId, destinationDisplayName | -|dataExport.messages.filtered |Yes |Data Export Messages Filtered |Count |Total |Number of messages that have passed through filters in data export |exportId, exportDisplayName, destinationId, destinationDisplayName | -|dataExport.messages.received |Yes |Data Export Messages Received |Count |Total |Number of messages incoming to data export, before filtering and enrichment processing |exportId, exportDisplayName, destinationId, destinationDisplayName | -|dataExport.messages.written |Yes |Data Export Messages Written |Count |Total |Number of messages written to a destination |exportId, exportDisplayName, destinationId, destinationDisplayName | -|dataExport.statusChange |Yes |Data Export Status Change |Count |Total |Number of status changes |exportId, exportDisplayName, destinationId, destinationDisplayName, status | -|deviceDataUsage |Yes |Total Device Data Usage |Bytes |Total |Bytes transferred to and from any devices connected to IoT Central application |No Dimensions | -|provisionedDeviceCount |No |Total Provisioned Devices |Count |Average |Number of devices provisioned in IoT Central application |No Dimensions | --## microsoft.keyvault/managedhsms -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Availability |No |Overall Service Availability |Percent |Average |Service requests availability |ActivityType, ActivityName, StatusCode, StatusCodeClass | -|ServiceApiHit |Yes |Total Service Api Hits |Count |Count |Number of total service api hits |ActivityType, ActivityName | -|ServiceApiLatency |No |Overall Service Api Latency |Milliseconds |Average |Overall latency of service api requests |ActivityType, ActivityName, StatusCode, StatusCodeClass | --## Microsoft.KeyVault/vaults -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Availability |Yes |Overall Vault Availability |Percent |Average |Vault requests availability |ActivityType, ActivityName, StatusCode, StatusCodeClass | -|SaturationShoebox |No |Overall Vault Saturation |Percent |Average |Vault capacity used |ActivityType, ActivityName, TransactionType | -|ServiceApiHit |Yes |Total Service Api Hits |Count |Count |Number of total service api hits |ActivityType, ActivityName | -|ServiceApiLatency |Yes |Overall Service Api Latency |MilliSeconds |Average |Overall latency of service api requests |ActivityType, ActivityName, StatusCode, StatusCodeClass | -|ServiceApiResult |Yes |Total Service Api Results |Count |Count |Number of total service api results |ActivityType, ActivityName, StatusCode, StatusCodeClass | --## microsoft.kubernetes/connectedClusters -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|capacity_cpu_cores |Yes |Total number of cpu cores in a connected cluster |Count |Total |Total number of cpu cores in a connected cluster |No Dimensions | --## microsoft.kubernetesconfiguration/extensions -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AuthAttempt |Yes |Authentication Attempts |Count |Total |Authentication attempts rate (per minute) |3gppGen, PccpId, SiteId | -|AuthFailure |Yes |Authentication Failures |Count |Total |Authentication failure rate (per minute) |3gppGen, PccpId, SiteId, Result | -|AuthSuccess |Yes |Authentication Successes |Count |Total |Authentication success rate (per minute) |3gppGen, PccpId, SiteId | -|ConnectedNodebs |Yes |Connected NodeBs |Count |Total |Number of connected gNodeBs or eNodeBs |3gppGen, PccpId, SiteId | -|DeRegistrationAttempt |Yes |DeRegistration Attempts |Count |Total |UE deregistration attempts rate (per minute) |3gppGen, PccpId, SiteId | -|DeRegistrationSuccess |Yes |DeRegistration Successes |Count |Total |UE deregistration success rate (per minute) |3gppGen, PccpId, SiteId | -|PagingAttempt |Yes |Paging Attempts |Count |Total |Paging attempts rate (per minute) |3gppGen, PccpId, SiteId | -|PagingFailure |Yes |Paging Failures |Count |Total |Paging failure rate (per minute) |3gppGen, PccpId, SiteId | -|ProvisionedSubscribers |No |Provisioned Subscribers |Count |Total |Number of provisioned subscribers |PccpId, SiteId | -|RanSetupFailure |Yes |RAN Setup Failures |Count |Total |RAN setup failure rate (per minute) |3gppGen, PccpId, SiteId, Cause | -|RanSetupRequest |Yes |RAN Setup Requests |Count |Total |RAN setup reuests rate (per minute) |3gppGen, PccpId, SiteId | -|RanSetupResponse |Yes |RAN Setup Responses |Count |Total |RAN setup response rate (per minute) |3gppGen, PccpId, SiteId | -|RegisteredSubscribers |Yes |Registered Subscribers |Count |Total |Number of registered subscribers |3gppGen, PccpId, SiteId | -|RegisteredSubscribersConnected |Yes |Registered Subscribers Connected |Count |Total |Number of registered and connected subscribers |3gppGen, PccpId, SiteId | -|RegisteredSubscribersIdle |Yes |Registered Subscribers Idle |Count |Total |Number of registered and idle subscribers |3gppGen, PccpId, SiteId | -|RegistrationAttempt |Yes |Registration Attempts |Count |Total |Registration attempts rate (per minute) |3gppGen, PccpId, SiteId | -|RegistrationFailure |Yes |Registration Failures |Count |Total |Registration failure rate (per minute) |3gppGen, PccpId, SiteId, Result | -|RegistrationSuccess |Yes |Registration Successes |Count |Total |Registration success rate (per minute) |3gppGen, PccpId, SiteId | -|ServiceRequestAttempt |Yes |Service Request Attempts |Count |Total |Service request attempts rate (per minute) |3gppGen, PccpId, SiteId | -|ServiceRequestFailure |Yes |Service Request Failures |Count |Total |Service request failure rate (per minute) |3gppGen, PccpId, SiteId, Result, Tai | -|ServiceRequestSuccess |Yes |Service Request Successes |Count |Total |Service request success rate (per minute) |3gppGen, PccpId, SiteId | -|SessionEstablishmentAttempt |Yes |Session Establishment Attempts |Count |Total |PDU session establishment attempts rarte (per minute) |3gppGen, PccpId, SiteId | -|SessionEstablishmentFailure |Yes |Session Establishment Failures |Count |Total |PDU session establishment failure rate (per minute) |3gppGen, PccpId, SiteId | -|SessionEstablishmentSuccess |Yes |Session Establishment Successes |Count |Total |PDU session establishment success rate (per minute) |3gppGen, PccpId, SiteId | -|SessionRelease |Yes |Session Releases |Count |Total |Session release rate (per minute) |3gppGen, PccpId, SiteId | -|UeContextReleaseCommand |Yes |UE Context Release Commands |Count |Total |UE context release command message rate (per minute) |3gppGen, PccpId, SiteId | -|UeContextReleaseComplete |Yes |UE Context Release Completes |Count |Total |UE context release complete message rate (per minute) |3gppGen, PccpId, SiteId | -|UeContextReleaseRequest |Yes |UE Context Release Requests |Count |Total |UE context release request message rate (per minute) |3gppGen, PccpId, SiteId | -|UserPlaneBandwidth |No |User Plane Bandwidth |BitsPerSecond |Total |User plane bandwidth in bits/second. |PcdpId, SiteId, Direction, Interface | -|UserPlanePacketDropRate |No |User Plane Packet Drop Rate |CountPerSecond |Total |User plane packet drop rate (packets/sec) |PcdpId, SiteId, Cause, Direction, Interface | -|UserPlanePacketRate |No |User Plane Packet Rate |CountPerSecond |Total |User plane packet rate (packets/sec) |PcdpId, SiteId, Direction, Interface | -|XnHandoverAttempt |Yes |Xn Handover Attempts |Count |Total |Handover attempts rate (per minute) |3gppGen, PccpId, SiteId | -|XnHandoverFailure |Yes |Xn Handover Failures |Count |Total |Handover failure rate (per minute) |3gppGen, PccpId, SiteId | -|XnHandoverSuccess |Yes |Xn Handover Successes |Count |Total |Handover success rate (per minute) |3gppGen, PccpId, SiteId | --## Microsoft.Kusto/clusters -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BatchBlobCount |Yes |Batch Blob Count |Count |Average |Number of data sources in an aggregated batch for ingestion. |Database | -|BatchDuration |Yes |Batch Duration |Seconds |Average |The duration of the aggregation phase in the ingestion flow. |Database | -|BatchesProcessed |Yes |Batches Processed |Count |Total |Number of batches aggregated for ingestion. Batching Type: whether the batch reached batching time, data size or number of files limit set by batching policy |Database, SealReason | -|BatchSize |Yes |Batch Size |Bytes |Average |Uncompressed expected data size in an aggregated batch for ingestion. |Database | -|BlobsDropped |Yes |Blobs Dropped |Count |Total |Number of blobs permanently rejected by a component. |Database, ComponentType, ComponentName | -|BlobsProcessed |Yes |Blobs Processed |Count |Total |Number of blobs processed by a component. |Database, ComponentType, ComponentName | -|BlobsReceived |Yes |Blobs Received |Count |Total |Number of blobs received from input stream by a component. |Database, ComponentType, ComponentName | -|CacheUtilization |Yes |Cache utilization (deprecated) |Percent |Average |Utilization level in the cluster scope. The metric is deprecated and presented for backward compatibility only, you should use the 'Cache utilization factor' metric instead. |No Dimensions | -|CacheUtilizationFactor |Yes |Cache utilization factor |Percent |Average |Percentage of utilized disk space dedicated for hot cache in the cluster. 100% means that the disk space assigned to hot data is optimally utilized. No action is needed in terms of the cache size. More than 100% means that the cluster's disk space is not large enough to accommodate the hot data, as defined by your caching policies. To ensure that sufficient space is available for all the hot data, the amount of hot data needs to be reduced or the cluster needs to be scaled out. Enabling auto scale is recommended. |No Dimensions | -|ContinuousExportMaxLatenessMinutes |Yes |Continuous Export Max Lateness |Count |Maximum |The lateness (in minutes) reported by the continuous export jobs in the cluster |No Dimensions | -|ContinuousExportNumOfRecordsExported |Yes |Continuous export ΓÇô num of exported records |Count |Total |Number of records exported, fired for every storage artifact written during the export operation |ContinuousExportName, Database | -|ContinuousExportPendingCount |Yes |Continuous Export Pending Count |Count |Maximum |The number of pending continuous export jobs ready for execution |No Dimensions | -|ContinuousExportResult |Yes |Continuous Export Result |Count |Count |Indicates whether Continuous Export succeeded or failed |ContinuousExportName, Result, Database | -|CPU |Yes |CPU |Percent |Average |CPU utilization level |No Dimensions | -|DiscoveryLatency |Yes |Discovery Latency |Seconds |Average |Reported by data connections (if exist). Time in seconds from when a message is enqueued or event is created until it is discovered by data connection. This time is not included in the Azure Data Explorer total ingestion duration. |ComponentType, ComponentName | -|EventsDropped |Yes |Events Dropped |Count |Total |Number of events dropped permanently by data connection. An Ingestion result metric with a failure reason will be sent. |ComponentType, ComponentName | -|EventsProcessed |Yes |Events Processed |Count |Total |Number of events processed by the cluster |ComponentType, ComponentName | -|EventsProcessedForEventHubs |Yes |Events Processed (for Event/IoT Hubs) |Count |Total |Number of events processed by the cluster when ingesting from Event/IoT Hub |EventStatus | -|EventsReceived |Yes |Events Received |Count |Total |Number of events received by data connection. |ComponentType, ComponentName | -|ExportUtilization |Yes |Export Utilization |Percent |Maximum |Export utilization |No Dimensions | -|FollowerLatency |Yes |FollowerLatency |MilliSeconds |Average |The follower databases synchronize changes in the leader databases. Because of the synchronization, there's a data lag of a few seconds to a few minutes in data availability.This metric measures the length of the time lag. The time lag depends on the overall size of the leader database metadata.This is a cluster level metrics: the followers catch metadata of all databases that are followed. This metric represents the latency of the process. |State, RoleInstance | -|IngestionLatencyInSeconds |Yes |Ingestion Latency |Seconds |Average |Latency of data ingested, from the time the data was received in the cluster until it's ready for query. The ingestion latency period depends on the ingestion scenario. |No Dimensions | -|IngestionResult |Yes |Ingestion result |Count |Total |Total number of sources that either failed or succeeded to be ingested. Splitting the metric by status, you can get detailed information about the status of the ingestion operations. |IngestionResultDetails, FailureKind | -|IngestionUtilization |Yes |Ingestion utilization |Percent |Average |Ratio of used ingestion slots in the cluster |No Dimensions | -|IngestionVolumeInMB |Yes |Ingestion Volume |Bytes |Total |Overall volume of ingested data to the cluster |Database | -|InstanceCount |Yes |Instance Count |Count |Average |Total instance count |No Dimensions | -|KeepAlive |Yes |Keep alive |Count |Average |Sanity check indicates the cluster responds to queries |No Dimensions | -|MaterializedViewAgeMinutes |Yes |Materialized View Age |Count |Average |The materialized view age in minutes |Database, MaterializedViewName | -|MaterializedViewAgeSeconds |Yes |Materialized View Age |Seconds |Average |The materialized view age in seconds |Database, MaterializedViewName | -|MaterializedViewDataLoss |Yes |Materialized View Data Loss |Count |Maximum |Indicates potential data loss in materialized view |Database, MaterializedViewName, Kind | -|MaterializedViewExtentsRebuild |Yes |Materialized View Extents Rebuild |Count |Average |Number of extents rebuild |Database, MaterializedViewName | -|MaterializedViewHealth |Yes |Materialized View Health |Count |Average |The health of the materialized view (1 for healthy, 0 for non-healthy) |Database, MaterializedViewName | -|MaterializedViewRecordsInDelta |Yes |Materialized View Records In Delta |Count |Average |The number of records in the non-materialized part of the view |Database, MaterializedViewName | -|MaterializedViewResult |Yes |Materialized View Result |Count |Average |The result of the materialization process |Database, MaterializedViewName, Result | -|QueryDuration |Yes |Query duration |MilliSeconds |Average |Queries' duration in seconds |QueryStatus | -|QueryResult |No |Query Result |Count |Count |Total number of queries. |QueryStatus | -|QueueLength |Yes |Queue Length |Count |Average |Number of pending messages in a component's queue. |ComponentType | -|QueueOldestMessage |Yes |Queue Oldest Message |Count |Average |Time in seconds from when the oldest message in queue was inserted. |ComponentType | -|ReceivedDataSizeBytes |Yes |Received Data Size Bytes |Bytes |Average |Size of data received by data connection. This is the size of the data stream, or of raw data size if provided. |ComponentType, ComponentName | -|StageLatency |Yes |Stage Latency |Seconds |Average |Cumulative time from when a message is discovered until it is received by the reporting component for processing (discovery time is set when message is enqueued for ingestion queue, or when discovered by data connection). |Database, ComponentType | -|StreamingIngestDataRate |Yes |Streaming Ingest Data Rate |Bytes |Average |Streaming ingest data rate |No Dimensions | -|StreamingIngestDuration |Yes |Streaming Ingest Duration |MilliSeconds |Average |Streaming ingest duration in milliseconds |No Dimensions | -|StreamingIngestResults |Yes |Streaming Ingest Result |Count |Count |Streaming ingest result |Result | -|TotalNumberOfConcurrentQueries |Yes |Total number of concurrent queries |Count |Maximum |Total number of concurrent queries |No Dimensions | -|TotalNumberOfExtents |Yes |Total number of extents |Count |Average |Total number of data extents |No Dimensions | -|TotalNumberOfThrottledCommands |Yes |Total number of throttled commands |Count |Total |Total number of throttled commands |CommandType | -|TotalNumberOfThrottledQueries |Yes |Total number of throttled queries |Count |Maximum |Total number of throttled queries |No Dimensions | -|WeakConsistencyLatency |Yes |Weak consistency latency |Seconds |Average |The max latency between the previous metadata sync and the next one (in DB/node scope) |Database, RoleInstance | --## Microsoft.Logic/IntegrationServiceEnvironments -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ActionLatency |Yes |Action Latency |Seconds |Average |Latency of completed workflow actions. |No Dimensions | -|ActionsCompleted |Yes |Actions Completed |Count |Total |Number of workflow actions completed. |No Dimensions | -|ActionsFailed |Yes |Actions Failed |Count |Total |Number of workflow actions failed. |No Dimensions | -|ActionsSkipped |Yes |Actions Skipped |Count |Total |Number of workflow actions skipped. |No Dimensions | -|ActionsStarted |Yes |Actions Started |Count |Total |Number of workflow actions started. |No Dimensions | -|ActionsSucceeded |Yes |Actions Succeeded |Count |Total |Number of workflow actions succeeded. |No Dimensions | -|ActionSuccessLatency |Yes |Action Success Latency |Seconds |Average |Latency of succeeded workflow actions. |No Dimensions | -|IntegrationServiceEnvironmentConnectorMemoryUsage |Yes |Connector Memory Usage for Integration Service Environment |Percent |Average |Connector memory usage for integration service environment. |No Dimensions | -|IntegrationServiceEnvironmentConnectorProcessorUsage |Yes |Connector Processor Usage for Integration Service Environment |Percent |Average |Connector processor usage for integration service environment. |No Dimensions | -|IntegrationServiceEnvironmentWorkflowMemoryUsage |Yes |Workflow Memory Usage for Integration Service Environment |Percent |Average |Workflow memory usage for integration service environment. |No Dimensions | -|IntegrationServiceEnvironmentWorkflowProcessorUsage |Yes |Workflow Processor Usage for Integration Service Environment |Percent |Average |Workflow processor usage for integration service environment. |No Dimensions | -|RunLatency |Yes |Run Latency |Seconds |Average |Latency of completed workflow runs. |No Dimensions | -|RunsCancelled |Yes |Runs Cancelled |Count |Total |Number of workflow runs cancelled. |No Dimensions | -|RunsCompleted |Yes |Runs Completed |Count |Total |Number of workflow runs completed. |No Dimensions | -|RunsFailed |Yes |Runs Failed |Count |Total |Number of workflow runs failed. |No Dimensions | -|RunsStarted |Yes |Runs Started |Count |Total |Number of workflow runs started. |No Dimensions | -|RunsSucceeded |Yes |Runs Succeeded |Count |Total |Number of workflow runs succeeded. |No Dimensions | -|RunSuccessLatency |Yes |Run Success Latency |Seconds |Average |Latency of succeeded workflow runs. |No Dimensions | -|TriggerFireLatency |Yes |Trigger Fire Latency |Seconds |Average |Latency of fired workflow triggers. |No Dimensions | -|TriggerLatency |Yes |Trigger Latency |Seconds |Average |Latency of completed workflow triggers. |No Dimensions | -|TriggersCompleted |Yes |Triggers Completed |Count |Total |Number of workflow triggers completed. |No Dimensions | -|TriggersFailed |Yes |Triggers Failed |Count |Total |Number of workflow triggers failed. |No Dimensions | -|TriggersFired |Yes |Triggers Fired |Count |Total |Number of workflow triggers fired. |No Dimensions | -|TriggersSkipped |Yes |Triggers Skipped |Count |Total |Number of workflow triggers skipped. |No Dimensions | -|TriggersStarted |Yes |Triggers Started |Count |Total |Number of workflow triggers started. |No Dimensions | -|TriggersSucceeded |Yes |Triggers Succeeded |Count |Total |Number of workflow triggers succeeded. |No Dimensions | -|TriggerSuccessLatency |Yes |Trigger Success Latency |Seconds |Average |Latency of succeeded workflow triggers. |No Dimensions | --## Microsoft.Logic/Workflows -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ActionLatency |Yes |Action Latency |Seconds |Average |Latency of completed workflow actions. |No Dimensions | -|ActionsCompleted |Yes |Actions Completed |Count |Total |Number of workflow actions completed. |No Dimensions | -|ActionsFailed |Yes |Actions Failed |Count |Total |Number of workflow actions failed. |No Dimensions | -|ActionsSkipped |Yes |Actions Skipped |Count |Total |Number of workflow actions skipped. |No Dimensions | -|ActionsStarted |Yes |Actions Started |Count |Total |Number of workflow actions started. |No Dimensions | -|ActionsSucceeded |Yes |Actions Succeeded |Count |Total |Number of workflow actions succeeded. |No Dimensions | -|ActionSuccessLatency |Yes |Action Success Latency |Seconds |Average |Latency of succeeded workflow actions. |No Dimensions | -|ActionThrottledEvents |Yes |Action Throttled Events |Count |Total |Number of workflow action throttled events.. |No Dimensions | -|BillableActionExecutions |Yes |Billable Action Executions |Count |Total |Number of workflow action executions getting billed. |No Dimensions | -|BillableTriggerExecutions |Yes |Billable Trigger Executions |Count |Total |Number of workflow trigger executions getting billed. |No Dimensions | -|BillingUsageNativeOperation |Yes |Billing Usage for Native Operation Executions |Count |Total |Number of native operation executions getting billed. |No Dimensions | -|BillingUsageStandardConnector |Yes |Billing Usage for Standard Connector Executions |Count |Total |Number of standard connector executions getting billed. |No Dimensions | -|BillingUsageStorageConsumption |Yes |Billing Usage for Storage Consumption Executions |Count |Total |Number of storage consumption executions getting billed. |No Dimensions | -|RunFailurePercentage |Yes |Run Failure Percentage |Percent |Total |Percentage of workflow runs failed. |No Dimensions | -|RunLatency |Yes |Run Latency |Seconds |Average |Latency of completed workflow runs. |No Dimensions | -|RunsCancelled |Yes |Runs Cancelled |Count |Total |Number of workflow runs cancelled. |No Dimensions | -|RunsCompleted |Yes |Runs Completed |Count |Total |Number of workflow runs completed. |No Dimensions | -|RunsFailed |Yes |Runs Failed |Count |Total |Number of workflow runs failed. |No Dimensions | -|RunsStarted |Yes |Runs Started |Count |Total |Number of workflow runs started. |No Dimensions | -|RunsSucceeded |Yes |Runs Succeeded |Count |Total |Number of workflow runs succeeded. |No Dimensions | -|RunStartThrottledEvents |Yes |Run Start Throttled Events |Count |Total |Number of workflow run start throttled events. |No Dimensions | -|RunSuccessLatency |Yes |Run Success Latency |Seconds |Average |Latency of succeeded workflow runs. |No Dimensions | -|RunThrottledEvents |Yes |Run Throttled Events |Count |Total |Number of workflow action or trigger throttled events. |No Dimensions | -|TotalBillableExecutions |Yes |Total Billable Executions |Count |Total |Number of workflow executions getting billed. |No Dimensions | -|TriggerFireLatency |Yes |Trigger Fire Latency |Seconds |Average |Latency of fired workflow triggers. |No Dimensions | -|TriggerLatency |Yes |Trigger Latency |Seconds |Average |Latency of completed workflow triggers. |No Dimensions | -|TriggersCompleted |Yes |Triggers Completed |Count |Total |Number of workflow triggers completed. |No Dimensions | -|TriggersFailed |Yes |Triggers Failed |Count |Total |Number of workflow triggers failed. |No Dimensions | -|TriggersFired |Yes |Triggers Fired |Count |Total |Number of workflow triggers fired. |No Dimensions | -|TriggersSkipped |Yes |Triggers Skipped |Count |Total |Number of workflow triggers skipped. |No Dimensions | -|TriggersStarted |Yes |Triggers Started |Count |Total |Number of workflow triggers started. |No Dimensions | -|TriggersSucceeded |Yes |Triggers Succeeded |Count |Total |Number of workflow triggers succeeded. |No Dimensions | -|TriggerSuccessLatency |Yes |Trigger Success Latency |Seconds |Average |Latency of succeeded workflow triggers. |No Dimensions | -|TriggerThrottledEvents |Yes |Trigger Throttled Events |Count |Total |Number of workflow trigger throttled events. |No Dimensions | --## Microsoft.MachineLearningServices/workspaces -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Active Cores |Yes |Active Cores |Count |Average |Number of active cores |Scenario, ClusterName | -|Active Nodes |Yes |Active Nodes |Count |Average |Number of Acitve nodes. These are the nodes which are actively running a job. |Scenario, ClusterName | -|Cancel Requested Runs |Yes |Cancel Requested Runs |Count |Total |Number of runs where cancel was requested for this workspace. Count is updated when cancellation request has been received for a run. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|Cancelled Runs |Yes |Cancelled Runs |Count |Total |Number of runs cancelled for this workspace. Count is updated when a run is successfully cancelled. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|Completed Runs |Yes |Completed Runs |Count |Total |Number of runs completed successfully for this workspace. Count is updated when a run has completed and output has been collected. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|CpuCapacityMillicores |Yes |CpuCapacityMillicores |Count |Average |Maximum capacity of a CPU node in millicores. Capacity is aggregated in one minute intervals. |RunId, InstanceId, ComputeName | -|CpuMemoryCapacityMegabytes |Yes |CpuMemoryCapacityMegabytes |Count |Average |Maximum memory utilization of a CPU node in megabytes. Utilization is aggregated in one minute intervals. |RunId, InstanceId, ComputeName | -|CpuMemoryUtilizationMegabytes |Yes |CpuMemoryUtilizationMegabytes |Count |Average |Memory utilization of a CPU node in megabytes. Utilization is aggregated in one minute intervals. |RunId, InstanceId, ComputeName | -|CpuMemoryUtilizationPercentage |Yes |CpuMemoryUtilizationPercentage |Count |Average |Memory utilization percentage of a CPU node. Utilization is aggregated in one minute intervals. |RunId, InstanceId, ComputeName | -|CpuUtilization |Yes |CpuUtilization |Count |Average |Percentage of utilization on a CPU node. Utilization is reported at one minute intervals. |Scenario, runId, NodeId, ClusterName | -|CpuUtilizationMillicores |Yes |CpuUtilizationMillicores |Count |Average |Utilization of a CPU node in millicores. Utilization is aggregated in one minute intervals. |RunId, InstanceId, ComputeName | -|CpuUtilizationPercentage |Yes |CpuUtilizationPercentage |Count |Average |Utilization percentage of a CPU node. Utilization is aggregated in one minute intervals. |RunId, InstanceId, ComputeName | -|DiskAvailMegabytes |Yes |DiskAvailMegabytes |Count |Average |Available disk space in megabytes. Metrics are aggregated in one minute intervals. |RunId, InstanceId, ComputeName | -|DiskReadMegabytes |Yes |DiskReadMegabytes |Count |Average |Data read from disk in megabytes. Metrics are aggregated in one minute intervals. |RunId, InstanceId, ComputeName | -|DiskUsedMegabytes |Yes |DiskUsedMegabytes |Count |Average |Used disk space in megabytes. Metrics are aggregated in one minute intervals. |RunId, InstanceId, ComputeName | -|DiskWriteMegabytes |Yes |DiskWriteMegabytes |Count |Average |Data written into disk in megabytes. Metrics are aggregated in one minute intervals. |RunId, InstanceId, ComputeName | -|Errors |Yes |Errors |Count |Total |Number of run errors in this workspace. Count is updated whenever run encounters an error. |Scenario | -|Failed Runs |Yes |Failed Runs |Count |Total |Number of runs failed for this workspace. Count is updated when a run fails. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|Finalizing Runs |Yes |Finalizing Runs |Count |Total |Number of runs entered finalizing state for this workspace. Count is updated when a run has completed but output collection still in progress. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|GpuCapacityMilliGPUs |Yes |GpuCapacityMilliGPUs |Count |Average |Maximum capacity of a GPU device in milli-GPUs. Capacity is aggregated in one minute intervals. |RunId, InstanceId, DeviceId, ComputeName | -|GpuEnergyJoules |Yes |GpuEnergyJoules |Count |Total |Interval energy in Joules on a GPU node. Energy is reported at one minute intervals. |Scenario, runId, rootRunId, InstanceId, DeviceId, ComputeName | -|GpuMemoryCapacityMegabytes |Yes |GpuMemoryCapacityMegabytes |Count |Average |Maximum memory capacity of a GPU device in megabytes. Capacity aggregated in at one minute intervals. |RunId, InstanceId, DeviceId, ComputeName | -|GpuMemoryUtilization |Yes |GpuMemoryUtilization |Count |Average |Percentage of memory utilization on a GPU node. Utilization is reported at one minute intervals. |Scenario, runId, NodeId, DeviceId, ClusterName | -|GpuMemoryUtilizationMegabytes |Yes |GpuMemoryUtilizationMegabytes |Count |Average |Memory utilization of a GPU device in megabytes. Utilization aggregated in at one minute intervals. |RunId, InstanceId, DeviceId, ComputeName | -|GpuMemoryUtilizationPercentage |Yes |GpuMemoryUtilizationPercentage |Count |Average |Memory utilization percentage of a GPU device. Utilization aggregated in at one minute intervals. |RunId, InstanceId, DeviceId, ComputeName | -|GpuUtilization |Yes |GpuUtilization |Count |Average |Percentage of utilization on a GPU node. Utilization is reported at one minute intervals. |Scenario, runId, NodeId, DeviceId, ClusterName | -|GpuUtilizationMilliGPUs |Yes |GpuUtilizationMilliGPUs |Count |Average |Utilization of a GPU device in milli-GPUs. Utilization is aggregated in one minute intervals. |RunId, InstanceId, DeviceId, ComputeName | -|GpuUtilizationPercentage |Yes |GpuUtilizationPercentage |Count |Average |Utilization percentage of a GPU device. Utilization is aggregated in one minute intervals. |RunId, InstanceId, DeviceId, ComputeName | -|IBReceiveMegabytes |Yes |IBReceiveMegabytes |Count |Average |Network data received over InfiniBand in megabytes. Metrics are aggregated in one minute intervals. |RunId, InstanceId, ComputeName, DeviceId | -|IBTransmitMegabytes |Yes |IBTransmitMegabytes |Count |Average |Network data sent over InfiniBand in megabytes. Metrics are aggregated in one minute intervals. |RunId, InstanceId, ComputeName, DeviceId | -|Idle Cores |Yes |Idle Cores |Count |Average |Number of idle cores |Scenario, ClusterName | -|Idle Nodes |Yes |Idle Nodes |Count |Average |Number of idle nodes. Idle nodes are the nodes which are not running any jobs but can accept new job if available. |Scenario, ClusterName | -|Leaving Cores |Yes |Leaving Cores |Count |Average |Number of leaving cores |Scenario, ClusterName | -|Leaving Nodes |Yes |Leaving Nodes |Count |Average |Number of leaving nodes. Leaving nodes are the nodes which just finished processing a job and will go to Idle state. |Scenario, ClusterName | -|Model Deploy Failed |Yes |Model Deploy Failed |Count |Total |Number of model deployments that failed in this workspace |Scenario, StatusCode | -|Model Deploy Started |Yes |Model Deploy Started |Count |Total |Number of model deployments started in this workspace |Scenario | -|Model Deploy Succeeded |Yes |Model Deploy Succeeded |Count |Total |Number of model deployments that succeeded in this workspace |Scenario | -|Model Register Failed |Yes |Model Register Failed |Count |Total |Number of model registrations that failed in this workspace |Scenario, StatusCode | -|Model Register Succeeded |Yes |Model Register Succeeded |Count |Total |Number of model registrations that succeeded in this workspace |Scenario | -|NetworkInputMegabytes |Yes |NetworkInputMegabytes |Count |Average |Network data received in megabytes. Metrics are aggregated in one minute intervals. |RunId, InstanceId, ComputeName, DeviceId | -|NetworkOutputMegabytes |Yes |NetworkOutputMegabytes |Count |Average |Network data sent in megabytes. Metrics are aggregated in one minute intervals. |RunId, InstanceId, ComputeName, DeviceId | -|Not Responding Runs |Yes |Not Responding Runs |Count |Total |Number of runs not responding for this workspace. Count is updated when a run enters Not Responding state. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|Not Started Runs |Yes |Not Started Runs |Count |Total |Number of runs in Not Started state for this workspace. Count is updated when a request is received to create a run but run information has not yet been populated. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|Preempted Cores |Yes |Preempted Cores |Count |Average |Number of preempted cores |Scenario, ClusterName | -|Preempted Nodes |Yes |Preempted Nodes |Count |Average |Number of preempted nodes. These nodes are the low priority nodes which are taken away from the available node pool. |Scenario, ClusterName | -|Preparing Runs |Yes |Preparing Runs |Count |Total |Number of runs that are preparing for this workspace. Count is updated when a run enters Preparing state while the run environment is being prepared. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|Provisioning Runs |Yes |Provisioning Runs |Count |Total |Number of runs that are provisioning for this workspace. Count is updated when a run is waiting on compute target creation or provisioning. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|Queued Runs |Yes |Queued Runs |Count |Total |Number of runs that are queued for this workspace. Count is updated when a run is queued in compute target. Can occure when waiting for required compute nodes to be ready. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|Quota Utilization Percentage |Yes |Quota Utilization Percentage |Count |Average |Percent of quota utilized |Scenario, ClusterName, VmFamilyName, VmPriority | -|Started Runs |Yes |Started Runs |Count |Total |Number of runs running for this workspace. Count is updated when run starts running on required resources. |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|Starting Runs |Yes |Starting Runs |Count |Total |Number of runs started for this workspace. Count is updated after request to create run and run info, such as the Run Id, has been populated |Scenario, RunType, PublishedPipelineId, ComputeType, PipelineStepType, ExperimentName | -|StorageAPIFailureCount |Yes |StorageAPIFailureCount |Count |Total |Azure Blob Storage API calls failure count. |RunId, InstanceId, ComputeName | -|StorageAPISuccessCount |Yes |StorageAPISuccessCount |Count |Total |Azure Blob Storage API calls success count. |RunId, InstanceId, ComputeName | -|Total Cores |Yes |Total Cores |Count |Average |Number of total cores |Scenario, ClusterName | -|Total Nodes |Yes |Total Nodes |Count |Average |Number of total nodes. This total includes some of Active Nodes, Idle Nodes, Unusable Nodes, Premepted Nodes, Leaving Nodes |Scenario, ClusterName | -|Unusable Cores |Yes |Unusable Cores |Count |Average |Number of unusable cores |Scenario, ClusterName | -|Unusable Nodes |Yes |Unusable Nodes |Count |Average |Number of unusable nodes. Unusable nodes are not functional due to some unresolvable issue. Azure will recycle these nodes. |Scenario, ClusterName | -|Warnings |Yes |Warnings |Count |Total |Number of run warnings in this workspace. Count is updated whenever a run encounters a warning. |Scenario | --## Microsoft.MachineLearningServices/workspaces/onlineEndpoints -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ConnectionsActive |No |Connections Active |Count |Average |The total number of concurrent TCP connections active from clients. |No Dimensions | -|DataCollectionErrorsPerMinute |No |Data Collection Errors Per Minute |Count |Average |The number of data collection events dropped per minute. |deployment, reason, type | -|DataCollectionEventsPerMinute |No |Data Collection Events Per Minute |Count |Average |The number of data collection events processed per minute. |deployment, type | -|NetworkBytes |No |Network Bytes |BytesPerSecond |Average |The bytes per second served for the endpoint. |No Dimensions | -|NewConnectionsPerSecond |No |New Connections Per Second |CountPerSecond |Average |The average number of new TCP connections per second established from clients. |No Dimensions | -|RequestLatency |Yes |Request Latency |Milliseconds |Average |The average complete interval of time taken for a request to be responded in milliseconds |deployment | -|RequestLatency_P50 |Yes |Request Latency P50 |Milliseconds |Average |The average P50 request latency aggregated by all request latency values collected over the selected time period |deployment | -|RequestLatency_P90 |Yes |Request Latency P90 |Milliseconds |Average |The average P90 request latency aggregated by all request latency values collected over the selected time period |deployment | -|RequestLatency_P95 |Yes |Request Latency P95 |Milliseconds |Average |The average P95 request latency aggregated by all request latency values collected over the selected time period |deployment | -|RequestLatency_P99 |Yes |Request Latency P99 |Milliseconds |Average |The average P99 request latency aggregated by all request latency values collected over the selected time period |deployment | -|RequestsPerMinute |No |Requests Per Minute |Count |Average |The number of requests sent to online endpoint within a minute |deployment, statusCode, statusCodeClass, modelStatusCode | --## Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|CpuMemoryUtilizationPercentage |Yes |CPU Memory Utilization Percentage |Percent |Average |Percentage of memory utilization on an instance. Utilization is reported at one minute intervals. |instanceId | -|CpuUtilizationPercentage |Yes |CPU Utilization Percentage |Percent |Average |Percentage of CPU utilization on an instance. Utilization is reported at one minute intervals. |instanceId | -|DataCollectionErrorsPerMinute |No |Data Collection Errors Per Minute |Count |Average |The number of data collection events dropped per minute. |instanceId, reason, type | -|DataCollectionEventsPerMinute |No |Data Collection Events Per Minute |Count |Average |The number of data collection events processed per minute. |instanceId, type | -|DeploymentCapacity |No |Deployment Capacity |Count |Average |The number of instances in the deployment. |instanceId, State | -|DiskUtilization |Yes |Disk Utilization |Percent |Maximum |Percentage of disk utilization on an instance. Utilization is reported at one minute intervals. |instanceId, disk | -|GpuEnergyJoules |No |GPU Energy in Joules |Count |Average |Interval energy in Joules on a GPU node. Energy is reported at one minute intervals. |instanceId | -|GpuMemoryUtilizationPercentage |Yes |GPU Memory Utilization Percentage |Percent |Average |Percentage of GPU memory utilization on an instance. Utilization is reported at one minute intervals. |instanceId | -|GpuUtilizationPercentage |Yes |GPU Utilization Percentage |Percent |Average |Percentage of GPU utilization on an instance. Utilization is reported at one minute intervals. |instanceId | --## Microsoft.ManagedNetworkFabric/networkDevices -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BgpPeerStatus |Yes |BGP Peer Status |Unspecified |Minimum |Operational state of the BGP peer. State is represented in numerical form. Idle : 1, Connect : 2, Active : 3, Opensent : 4, Openconfirm : 5, Established : 6 |FabricId, RegionName, IpAddress | -|CpuUtilizationMax |Yes |Cpu Utilization Max |Percent |Average |Max cpu utilization. The maximum value of the percentage measure of the statistic over the time interval. |FabricId, RegionName, ComponentName | -|CpuUtilizationMin |Yes |Cpu Utilization Min |Percent |Average |Min cpu utilization. The minimum value of the percentage measure of the statistic over the time interval. |FabricId, RegionName, ComponentName | -|FanSpeed |Yes |Fan Speed |Unspecified |Average |Current fan speed. |FabricId, RegionName, ComponentName | -|IfEthInCrcErrors |Yes |Ethernet Interface In CRC Errors |Count |Average |The total number of frames received that had a length (excluding framing bits, but including FCS octets) of between 64 and 1518 octets, inclusive, but had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error) |FabricId, RegionName, InterfaceName | -|IfEthInFragmentFrames |Yes |Ethernet Interface In Fragment Frames |Count |Average |The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error). |FabricId, RegionName, InterfaceName | -|IfEthInJabberFrames |Yes |Ethernet Interface In Jabber Frames |Count |Average |Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. |FabricId, RegionName, InterfaceName | -|IfEthInMacControlFrames |Yes |Ethernet Interface In MAC Control Frames |Count |Average |MAC layer control frames received on the interface |FabricId, RegionName, InterfaceName | -|IfEthInMacPauseFrames |Yes |Ethernet Interface In MAC Pause Frames |Count |Average |MAC layer PAUSE frames received on the interface |FabricId, RegionName, InterfaceName | -|IfEthInOversizeFrames |Yes |Ethernet Interface In Oversize Frames |Count |Average |The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed. |FabricId, RegionName, InterfaceName | -|IfEthOutMacControlFrames |Yes |Ethernet Interface Out MAC Control Frames |Count |Average |MAC layer control frames sent on the interface. |FabricId, RegionName, InterfaceName | -|IfEthOutMacPauseFrames |Yes |Ethernet Interface Out MAC Pause Frames |Count |Average |MAC layer PAUSE frames sent on the interface. |FabricId, RegionName, InterfaceName | -|IfInBroadcastPkts |Yes |Interface In Broadcast Pkts |Count |Average |The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a broadcast address at this sub-layer. |FabricId, RegionName, InterfaceName | -|IfInDiscards |Yes |Interface In Discards |Count |Average |The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. |FabricId, RegionName, InterfaceName | -|IfInErrors |Yes |Interface In Errors |Count |Average |For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. |FabricId, RegionName, InterfaceName | -|IfInFcsErrors |Yes |Interface In FCS Errors |Count |Average |Number of received packets which had errors in the frame check sequence (FCS), i.e., framing errors. |FabricId, RegionName, InterfaceName | -|IfInMulticastPkts |Yes |Interface In Multicast Pkts |Count |Average |The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were addressed to a multicast address at this sub-layer. For a MAC-layer protocol, this includes both Group and Functional addresses. |FabricId, RegionName, InterfaceName | -|IfInOctets |Yes |Interface In Octets |Count |Average |The total number of octets received on the interface, including framing characters. |FabricId, RegionName, InterfaceName | -|IfInPkts |Yes |Interface In Pkts |Count |Average |The total number of packets received on the interface, including all unicast, multicast, broadcast and bad packets etc. |FabricId, RegionName, InterfaceName | -|IfInUnicastPkts |Yes |Interface In Unicast Pkts |Count |Average |The number of packets, delivered by this sub-layer to a higher (sub-)layer, that were not addressed to a multicast or broadcast address at this sub-layer. |FabricId, RegionName, InterfaceName | -|IfOutBroadcastPkts |Yes |Interface Out Broadcast Pkts |Count |Average |The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent. |FabricId, RegionName, InterfaceName | -|IfOutDiscards |Yes |Interface Out Discards |Count |Average |The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. |FabricId, RegionName, InterfaceName | -|IfOutErrors |Yes |Interface Out Errors |Count |Average |For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. |FabricId, RegionName, InterfaceName | -|IfOutMulticastPkts |Yes |Interface Out Multicast Pkts |Count |Average |The total number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sub-layer, including those that were discarded or not sent. For a MAC-layer protocol, this includes both Group and Functional addresses. |FabricId, RegionName, InterfaceName | -|IfOutOctets |Yes |Interface Out Octets |Count |Average |The total number of octets transmitted out of the interface, including framing characters. |FabricId, RegionName, InterfaceName | -|IfOutPkts |Yes |Interface Out Pkts |Count |Average |The total number of packets transmitted out of the interface, including all unicast, multicast, broadcast, and bad packets etc. |FabricId, RegionName, InterfaceName | -|IfOutUnicastPkts |Yes |Interface Out Unicast Pkts |Count |Average |The total number of packets that higher-level requested be transmitted, and that were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent. |FabricId, RegionName, InterfaceName | -|InterfaceOperStatus |Yes |Interface Operational State |Unspecified |Minimum |The current operational state of the interface. State is represented in numerical form. Up: 0, Down: 1, Lower_layer_down: 2, Testing: 3, Unknown: 4, Dormant: 5, Not_present: 6. |FabricId, RegionName, InterfaceName | -|LacpErrors |Yes |Lacp Errors |Count |Average |Number of LACPDU illegal packet errors. |FabricId, RegionName, InterfaceName | -|LacpInPkts |Yes |Lacp In Pkts |Count |Average |Number of LACPDUs received. |FabricId, RegionName, InterfaceName | -|LacpOutPkts |Yes |Lacp Out Pkts |Count |Average |Number of LACPDUs transmitted. |FabricId, RegionName, InterfaceName | -|LacpRxErrors |Yes |Lacp Rx Errors |Count |Average |Number of LACPDU receive packet errors. |FabricId, RegionName, InterfaceName | -|LacpTxErrors |Yes |Lacp Tx Errors |Count |Average |Number of LACPDU transmit packet errors. |FabricId, RegionName, InterfaceName | -|LacpUnknownErrors |Yes |Lacp Unknown Errors |Count |Average |Number of LACPDU unknown packet errors. |FabricId, RegionName, InterfaceName | -|LldpFrameIn |Yes |Lldp Frame In |Count |Average |The number of lldp frames received. |FabricId, RegionName, InterfaceName | -|LldpFrameOut |Yes |Lldp Frame Out |Count |Average |The number of frames transmitted out. |FabricId, RegionName, InterfaceName | -|LldpTlvUnknown |Yes |Lldp Tlv Unknown |Count |Average |The number of frames received with unknown TLV. |FabricId, RegionName, InterfaceName | -|MemoryAvailable |Yes |Memory Available |Bytes |Average |The available memory physically installed, or logically allocated to the component. |FabricId, RegionName, ComponentName | -|MemoryUtilized |Yes |Memory Utilized |Bytes |Average |The memory currently in use by processes running on the component, not considering reserved memory that is not available for use. |FabricId, RegionName, ComponentName | -|PowerSupplyCapacity |Yes |Power Supply Maximum Power Capacity |Unspecified |Average |Maximum power capacity of the power supply (watts). |FabricId, RegionName, ComponentName | -|PowerSupplyInputCurrent |Yes |Power Supply Input Current |Unspecified |Average |The input current draw of the power supply (amps). |FabricId, RegionName, ComponentName | -|PowerSupplyInputVoltage |Yes |Power Supply Input Voltage |Unspecified |Average |Input voltage to the power supply (volts). |FabricId, RegionName, ComponentName | -|PowerSupplyOutputCurrent |Yes |Power Supply Output Current |Unspecified |Average |The output current supplied by the power supply (amps) |FabricId, RegionName, ComponentName | -|PowerSupplyOutputPower |Yes |Power Supply Output Power |Unspecified |Average |Output power supplied by the power supply (watts) |FabricId, RegionName, ComponentName | -|PowerSupplyOutputVoltage |Yes |Power Supply Output Voltage |Unspecified |Average |Output voltage supplied by the power supply (volts). |FabricId, RegionName, ComponentName | --## Microsoft.Maps/accounts -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|Availability |Yes |Availability |Percent |Average |Availability of the APIs |ApiCategory, ApiName | -|CreatorUsage |No |Creator Usage |Bytes |Average |Azure Maps Creator usage statistics |ServiceName | -|Usage |No |Usage |Count |Count |Count of API calls |ApiCategory, ApiName, ResultType, ResponseCode | --## Microsoft.Media/mediaservices -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AssetCount |Yes |Asset count |Count |Average |How many assets are already created in current media service account |No Dimensions | -|AssetQuota |Yes |Asset quota |Count |Average |How many assets are allowed for current media service account |No Dimensions | -|AssetQuotaUsedPercentage |Yes |Asset quota used percentage |Percent |Average |Asset used percentage in current media service account |No Dimensions | -|ChannelsAndLiveEventsCount |Yes |Live event count |Count |Average |The total number of live events in the current media services account |No Dimensions | -|ContentKeyPolicyCount |Yes |Content Key Policy count |Count |Average |How many content key policies are already created in current media service account |No Dimensions | -|ContentKeyPolicyQuota |Yes |Content Key Policy quota |Count |Average |How many content key polices are allowed for current media service account |No Dimensions | -|ContentKeyPolicyQuotaUsedPercentage |Yes |Content Key Policy quota used percentage |Percent |Average |Content Key Policy used percentage in current media service account |No Dimensions | -|JobQuota |Yes |Job quota |Count |Average |The Job quota for the current media service account. |No Dimensions | -|JobsScheduled |Yes |Jobs Scheduled |Count |Average |The number of Jobs in the Scheduled state. Counts on this metric only reflect jobs submitted through the v3 API. Jobs submitted through the v2 (Legacy) API are not counted. |No Dimensions | -|KeyDeliveryRequests |No |Key request time |Count |Average |The key delivery request status and latency in milliseconds for the current Media Service account. |KeyType, HttpStatusCode | -|MaxChannelsAndLiveEventsCount |Yes |Max live event quota |Count |Average |The maximum number of live events allowed in the current media services account |No Dimensions | -|MaxRunningChannelsAndLiveEventsCount |Yes |Max running live event quota |Count |Average |The maximum number of running live events allowed in the current media services account |No Dimensions | -|RunningChannelsAndLiveEventsCount |Yes |Running live event count |Count |Average |The total number of running live events in the current media services account |No Dimensions | -|StreamingPolicyCount |Yes |Streaming Policy count |Count |Average |How many streaming policies are already created in current media service account |No Dimensions | -|StreamingPolicyQuota |Yes |Streaming Policy quota |Count |Average |How many streaming policies are allowed for current media service account |No Dimensions | -|StreamingPolicyQuotaUsedPercentage |Yes |Streaming Policy quota used percentage |Percent |Average |Streaming Policy used percentage in current media service account |No Dimensions | -|TransformQuota |Yes |Transform quota |Count |Average |The Transform quota for the current media service account. |No Dimensions | --## Microsoft.Media/mediaservices/liveEvents -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|IngestBitrate |Yes |Live Event ingest bitrate |BitsPerSecond |Average |The incoming bitrate ingested for a live event, in bits per second. |TrackName | -|IngestDriftValue |Yes |Live Event ingest drift value |Seconds |Maximum |Drift between the timestamp of the ingested content and the system clock, measured in seconds per minute. A non zero value indicates that the ingested content is arriving slower than system clock time. |TrackName | -|IngestLastTimestamp |Yes |Live Event ingest last timestamp |Milliseconds |Maximum |Last timestamp ingested for a live event. |TrackName | -|LiveOutputLastTimestamp |Yes |Last output timestamp |Milliseconds |Maximum |Timestamp of the last fragment uploaded to storage for a live event output. |TrackName | --## Microsoft.Media/mediaservices/streamingEndpoints -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|CPU |Yes |CPU usage |Percent |Average |CPU usage for premium streaming endpoints. This data is not available for standard streaming endpoints. |No Dimensions | -|Egress |Yes |Egress |Bytes |Total |The amount of Egress data, in bytes. |OutputFormat | -|EgressBandwidth |No |Egress bandwidth |BitsPerSecond |Average |Egress bandwidth in bits per second. |No Dimensions | -|Requests |Yes |Requests |Count |Total |Requests to a Streaming Endpoint. |OutputFormat, HttpStatusCode, ErrorCode | -|SuccessE2ELatency |Yes |Success end to end Latency |MilliSeconds |Average |The average latency for successful requests in milliseconds. |OutputFormat | --## Microsoft.Media/videoanalyzers -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|IngressBytes |Yes |Ingress Bytes |Bytes |Total |The number of bytes ingressed by the pipeline node. |PipelineKind, PipelineTopology, Pipeline, Node | -|Pipelines |Yes |Pipelines |Count |Total |The number of pipelines of each kind and state |PipelineKind, PipelineTopology, PipelineState | --## Microsoft.MixedReality/remoteRenderingAccounts -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ActiveRenderingSessions |Yes |Active Rendering Sessions |Count |Average |Total number of active rendering sessions |SessionType, SDKVersion | -|AssetsConverted |Yes |Assets Converted |Count |Total |Total number of assets converted |SDKVersion | --## Microsoft.MixedReality/spatialAnchorsAccounts -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AnchorsCreated |Yes |Anchors Created |Count |Total |Number of Anchors created |DeviceFamily, SDKVersion | -|AnchorsDeleted |Yes |Anchors Deleted |Count |Total |Number of Anchors deleted |DeviceFamily, SDKVersion | -|AnchorsQueried |Yes |Anchors Queried |Count |Total |Number of Spatial Anchors queried |DeviceFamily, SDKVersion | -|AnchorsUpdated |Yes |Anchors Updated |Count |Total |Number of Anchors updated |DeviceFamily, SDKVersion | -|PosesFound |Yes |Poses Found |Count |Total |Number of Poses returned |DeviceFamily, SDKVersion | -|TotalDailyAnchors |Yes |Total Daily Anchors |Count |Average |Total number of Anchors - Daily |DeviceFamily, SDKVersion | --## Microsoft.Monitor/accounts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ActiveTimeSeries |No |Active Time Series |Count |Maximum | The number of unique time series recently ingested into the account over the previous 12 hours |StampColor | -|ActiveTimeSeriesLimit |No |Active Time Series Limit |Count |Maximum |The limit on the number of unique time series which can be actively ingested into the account |StampColor | -|ActiveTimeSeriesPercentUtilization |No | Active Time Series % Utilization |Percent |Average |The percentage of current active time series account limit being utilized |StampColor | -|EventsPerMinuteIngested |No |Events Per Minute Ingested |Count |Maximum |The number of events per minute recently received |StampColor | -|EventsPerMinuteIngestedLimit |No |Events Per Minute Ingested Limit |Count |Maximum |The maximum number of events per minute which can be received before events become throttled |StampColor | -|EventsPerMinuteIngestedPercentUtilization |No |Events Per Minute Ingested % Utilization |Percent |Average |The percentage of the current metric ingestion rate limit being utilized |StampColor | -|SimpleSamplesStored |No |Simple Data Samples Stored |Count |Maximum |The total number of samples stored for simple sampling types (like sum, count). For Prometheus this is equivalent to the number of samples scraped and ingested. |StampColor | --## Microsoft.NetApp/netAppAccounts/capacityPools -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|VolumePoolAllocatedSize |Yes |Pool Allocated Size |Bytes |Average |Provisioned size of this pool |No Dimensions | -|VolumePoolAllocatedToVolumeThroughput |Yes |Pool allocated throughput |BytesPerSecond |Average |Sum of the throughput of all the volumes belonging to the pool |No Dimensions | -|VolumePoolAllocatedUsed |Yes |Pool Allocated To Volume Size |Bytes |Average |Allocated used size of the pool |No Dimensions | -|VolumePoolProvisionedThroughput |Yes |Provisioned throughput for the pool |BytesPerSecond |Average |Provisioned throughput of this pool |No Dimensions | -|VolumePoolTotalLogicalSize |Yes |Pool Consumed Size |Bytes |Average |Sum of the logical size of all the volumes belonging to the pool |No Dimensions | -|VolumePoolTotalSnapshotSize |Yes |Total Snapshot size for the pool |Bytes |Average |Sum of snapshot size of all volumes in this pool |No Dimensions | --## Microsoft.NetApp/netAppAccounts/capacityPools/volumes -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AverageReadLatency |Yes |Average read latency |MilliSeconds |Average |Average read latency in milliseconds per operation |No Dimensions | -|AverageWriteLatency |Yes |Average write latency |MilliSeconds |Average |Average write latency in milliseconds per operation |No Dimensions | -|CbsVolumeBackupActive |Yes |Is Volume Backup suspended |Count |Average |Is the backup policy suspended for the volume? 0 if yes, 1 if no. |No Dimensions | -|CbsVolumeLogicalBackupBytes |Yes |Volume Backup Bytes |Bytes |Average |Total bytes backed up for this Volume. |No Dimensions | -|CbsVolumeOperationBackupTransferredBytes |Yes |Volume Backup Operation Last Transferred Bytes |Bytes |Average |Total bytes transferred for last backup operation. |No Dimensions | -|CbsVolumeOperationComplete |Yes |Is Volume Backup Operation Complete |Count |Average |Did the last volume backup or restore operation complete successfully? 1 if yes, 0 if no. |No Dimensions | -|CbsVolumeOperationRestoreTransferredBytes |Yes |Volume Backup Restore Operation Last Transferred Bytes |Bytes |Average |Total bytes transferred for last backup restore operation. |No Dimensions | -|CbsVolumeOperationTransferredBytes |Yes |Volume Backup Last Transferred Bytes |Bytes |Average |Total bytes transferred for last backup or restore operation. |No Dimensions | -|CbsVolumeProtected |Yes |Is Volume Backup Enabled |Count |Average |Is backup enabled for the volume? 1 if yes, 0 if no. |No Dimensions | -|OtherThroughput |Yes |Other throughput |BytesPerSecond |Average |Other throughput (that is not read or write) in bytes per second |No Dimensions | -|ReadIops |Yes |Read iops |CountPerSecond |Average |Read In/out operations per second |No Dimensions | -|ReadThroughput |Yes |Read throughput |BytesPerSecond |Average |Read throughput in bytes per second |No Dimensions | -|TotalThroughput |Yes |Total throughput |BytesPerSecond |Average |Sum of all throughput in bytes per second |No Dimensions | -|VolumeAllocatedSize |Yes |Volume allocated size |Bytes |Average |The provisioned size of a volume |No Dimensions | -|VolumeConsumedSizePercentage |Yes |Percentage Volume Consumed Size |Percent |Average |The percentage of the volume consumed including snapshots. |No Dimensions | -|VolumeCoolTierDataReadSize |Yes |Volume cool tier data read size |Bytes |Average |Data read in using GET per volume |No Dimensions | -|VolumeCoolTierDataWriteSize |Yes |Volume cool tier data write size |Bytes |Average |Data tiered out using PUT per volume |No Dimensions | -|VolumeCoolTierSize |Yes |Volume cool tier size |Bytes |Average |Volume Footprint for Cool Tier |No Dimensions | -|VolumeLogicalSize |Yes |Volume Consumed Size |Bytes |Average |Logical size of the volume (used bytes) |No Dimensions | -|VolumeSnapshotSize |Yes |Volume snapshot size |Bytes |Average |Size of all snapshots in volume |No Dimensions | -|WriteIops |Yes |Write iops |CountPerSecond |Average |Write In/out operations per second |No Dimensions | -|WriteThroughput |Yes |Write throughput |BytesPerSecond |Average |Write throughput in bytes per second |No Dimensions | -|XregionReplicationHealthy |Yes |Is volume replication status healthy |Count |Average |Condition of the relationship, 1 or 0. |No Dimensions | -|XregionReplicationLagTime |Yes |Volume replication lag time |Seconds |Average |The amount of time in seconds by which the data on the mirror lags behind the source. |No Dimensions | -|XregionReplicationLastTransferDuration |Yes |Volume replication last transfer duration |Seconds |Average |The amount of time in seconds it took for the last transfer to complete. |No Dimensions | -|XregionReplicationLastTransferSize |Yes |Volume replication last transfer size |Bytes |Average |The total number of bytes transferred as part of the last transfer. |No Dimensions | -|XregionReplicationRelationshipProgress |Yes |Volume replication progress |Bytes |Average |Total amount of data transferred for the current transfer operation. |No Dimensions | -|XregionReplicationRelationshipTransferring |Yes |Is volume replication transferring |Count |Average |Whether the status of the Volume Replication is 'transferring'. |No Dimensions | -|XregionReplicationTotalTransferBytes |Yes |Volume replication total transfer |Bytes |Average |Cumulative bytes transferred for the relationship. |No Dimensions | --## Microsoft.Network/applicationgateways -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ApplicationGatewayTotalTime |No |Application Gateway Total Time |MilliSeconds |Average |Average time that it takes for a request to be processed and its response to be sent. This is calculated as average of the interval from the time when Application Gateway receives the first byte of an HTTP request to the time when the response send operation finishes. It's important to note that this usually includes the Application Gateway processing time, time that the request and response packets are traveling over the network and the time the backend server took to respond. |Listener | -|AvgRequestCountPerHealthyHost |No |Requests per minute per Healthy Host |Count |Average |Average request count per minute per healthy backend host in a pool |BackendSettingsPool | -|AzwafBotProtection |Yes |WAF Bot Protection Matches |Count |Total |Matched Bot Rules |Action, Category, Mode, CountryCode, PolicyName, PolicyScope | -|AzwafCustomRule |Yes |WAF Custom Rule Matches |Count |Total |Matched Custom Rules |Action, CustomRuleID, Mode, CountryCode, PolicyName, PolicyScope | -|AzwafSecRule |Yes |WAF Managed Rule Matches |Count |Total |Matched Managed Rules |Action, Mode, RuleGroupID, RuleID, CountryCode, PolicyName, PolicyScope, RuleSetName | -|AzwafTotalRequests |Yes |WAF Total Requests |Count |Total |Total number of requests evaluated by WAF |Action, CountryCode, Method, Mode, PolicyName, PolicyScope | -|BackendConnectTime |No |Backend Connect Time |MilliSeconds |Average |Time spent establishing a connection with a backend server |Listener, BackendServer, BackendPool, BackendHttpSetting | -|BackendFirstByteResponseTime |No |Backend First Byte Response Time |MilliSeconds |Average |Time interval between start of establishing a connection to backend server and receiving the first byte of the response header, approximating processing time of backend server |Listener, BackendServer, BackendPool, BackendHttpSetting | -|BackendLastByteResponseTime |No |Backend Last Byte Response Time |MilliSeconds |Average |Time interval between start of establishing a connection to backend server and receiving the last byte of the response body |Listener, BackendServer, BackendPool, BackendHttpSetting | -|BackendResponseStatus |Yes |Backend Response Status |Count |Total |The number of HTTP response codes generated by the backend members. This does not include any response codes generated by the Application Gateway. |BackendServer, BackendPool, BackendHttpSetting, HttpStatusGroup | -|BlockedCount |Yes |Web Application Firewall Blocked Requests Rule Distribution |Count |Total |Web Application Firewall blocked requests rule distribution |RuleGroup, RuleId | -|BytesReceived |Yes |Bytes Received |Bytes |Total |The total number of bytes received by the Application Gateway from the clients |Listener | -|BytesSent |Yes |Bytes Sent |Bytes |Total |The total number of bytes sent by the Application Gateway to the clients |Listener | -|CapacityUnits |No |Current Capacity Units |Count |Average |Capacity Units consumed |No Dimensions | -|ClientRtt |No |Client RTT |MilliSeconds |Average |Average round trip time between clients and Application Gateway. This metric indicates how long it takes to establish connections and return acknowledgements |Listener | -|ComputeUnits |No |Current Compute Units |Count |Average |Compute Units consumed |No Dimensions | -|CpuUtilization |No |CPU Utilization |Percent |Average |Current CPU utilization of the Application Gateway |No Dimensions | -|CurrentConnections |Yes |Current Connections |Count |Total |Count of current connections established with Application Gateway |No Dimensions | -|EstimatedBilledCapacityUnits |No |Estimated Billed Capacity Units |Count |Average |Estimated capacity units that will be charged |No Dimensions | -|FailedRequests |Yes |Failed Requests |Count |Total |Count of failed requests that Application Gateway has served |BackendSettingsPool | -|FixedBillableCapacityUnits |No |Fixed Billable Capacity Units |Count |Average |Minimum capacity units that will be charged |No Dimensions | -|HealthyHostCount |Yes |Healthy Host Count |Count |Average |Number of healthy backend hosts |BackendSettingsPool | -|MatchedCount |Yes |Web Application Firewall Total Rule Distribution |Count |Total |Web Application Firewall Total Rule Distribution for the incoming traffic |RuleGroup, RuleId | -|NewConnectionsPerSecond |No |New connections per second |CountPerSecond |Average |New connections per second established with Application Gateway |No Dimensions | -|ResponseStatus |Yes |Response Status |Count |Total |Http response status returned by Application Gateway |HttpStatusGroup | -|Throughput |No |Throughput |BytesPerSecond |Average |Number of bytes per second the Application Gateway has served |No Dimensions | -|TlsProtocol |Yes |Client TLS Protocol |Count |Total |The number of TLS and non-TLS requests initiated by the client that established connection with the Application Gateway. To view TLS protocol distribution, filter by the dimension TLS Protocol. |Listener, TlsProtocol | -|TotalRequests |Yes |Total Requests |Count |Total |Count of successful requests that Application Gateway has served |BackendSettingsPool | -|UnhealthyHostCount |Yes |Unhealthy Host Count |Count |Average |Number of unhealthy backend hosts |BackendSettingsPool | --## Microsoft.Network/azureFirewalls -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ApplicationRuleHit |Yes |Application rules hit count |Count |Total |Number of times Application rules were hit |Status, Reason, Protocol | -|DataProcessed |Yes |Data processed |Bytes |Total |Total amount of data processed by this firewall |No Dimensions | -|FirewallHealth |Yes |Firewall health state |Percent |Average |Indicates the overall health of this firewall |Status, Reason | -|FirewallLatencyPng |Yes |Latency Probe (Preview) |Milliseconds |Average |Estimate of the average latency of the Firewall as measured by latency probe |No Dimensions | -|NetworkRuleHit |Yes |Network rules hit count |Count |Total |Number of times Network rules were hit |Status, Reason, Protocol | -|SNATPortUtilization |Yes |SNAT port utilization |Percent |Average |Percentage of outbound SNAT ports currently in use |Protocol | -|Throughput |No |Throughput |BitsPerSecond |Average |Throughput processed by this firewall |No Dimensions | --## microsoft.network/bastionHosts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|pingmesh |No |Bastion Communication Status |Count |Average |Communication status shows 1 if all communication is good and 0 if its bad. |No Dimensions | -|sessions |No |Session Count |Count |Total |Sessions Count for the Bastion. View in sum and per instance. |host | -|total |Yes |Total Memory |Count |Average |Total memory stats. |host | -|usage_user |No |CPU Usage |Count |Average |CPU Usage stats. |cpu, host | -|used |Yes |Memory Usage |Count |Average |Memory Usage stats. |host | --## Microsoft.Network/connections -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BitsInPerSecond |Yes |BitsInPerSecond |BitsPerSecond |Average |Bits ingressing Azure per second |No Dimensions | -|BitsOutPerSecond |Yes |BitsOutPerSecond |BitsPerSecond |Average |Bits egressing Azure per second |No Dimensions | --## Microsoft.Network/dnsForwardingRulesets -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ForwardingRuleCount |No |Forwarding Rule Count |Count |Maximum |This metric indicates the number of forwarding rules present in each DNS forwarding ruleset. |No Dimensions | -|VirtualNetworkLinkCount |No |Virtual Network Link Count |Count |Maximum |This metric indicates the number of associated virtual network links to a DNS forwarding ruleset. |No Dimensions | --## Microsoft.Network/dnsResolvers -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|InboundEndpointCount |No |Inbound Endpoint Count |Count |Maximum |This metric indicates the number of inbound endpoints created for a DNS Resolver. |No Dimensions | -|OutboundEndpointCount |No |Outbound Endpoint Count |Count |Maximum |This metric indicates the number of outbound endpoints created for a DNS Resolver. |No Dimensions | -|QPS |No |Queries Per Second |Count |Average |This metric indicates the queries per second for a DNS Resolver. (Can be aggregated per EndpointId) |EndpointId | --## Microsoft.Network/dnszones -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|QueryVolume |No |Query Volume |Count |Total |Number of queries served for a DNS zone |No Dimensions | -|RecordSetCapacityUtilization |No |Record Set Capacity Utilization |Percent |Maximum |Percent of Record Set capacity utilized by a DNS zone |No Dimensions | -|RecordSetCount |No |Record Set Count |Count |Maximum |Number of Record Sets in a DNS zone |No Dimensions | --## Microsoft.Network/expressRouteCircuits -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ArpAvailability |Yes |Arp Availability |Percent |Average |ARP Availability from MSEE towards all peers. |PeeringType, Peer | -|BgpAvailability |Yes |Bgp Availability |Percent |Average |BGP Availability from MSEE towards all peers. |PeeringType, Peer | -|BitsInPerSecond |Yes |BitsInPerSecond |BitsPerSecond |Average |Bits ingressing Azure per second |PeeringType, DeviceRole | -|BitsOutPerSecond |Yes |BitsOutPerSecond |BitsPerSecond |Average |Bits egressing Azure per second |PeeringType, DeviceRole | -|FastPathRoutesCountForCircuit |Yes |FastPathRoutesCount |Count |Maximum |Count of fastpath routes configured on circuit |No Dimensions | -|GlobalReachBitsInPerSecond |No |GlobalReachBitsInPerSecond |BitsPerSecond |Average |Bits ingressing Azure per second |PeeredCircuitSKey | -|GlobalReachBitsOutPerSecond |No |GlobalReachBitsOutPerSecond |BitsPerSecond |Average |Bits egressing Azure per second |PeeredCircuitSKey | -|QosDropBitsInPerSecond |Yes |DroppedInBitsPerSecond |BitsPerSecond |Average |Ingress bits of data dropped per second |No Dimensions | -|QosDropBitsOutPerSecond |Yes |DroppedOutBitsPerSecond |BitsPerSecond |Average |Egress bits of data dropped per second |No Dimensions | --## Microsoft.Network/expressRouteCircuits/peerings -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BitsInPerSecond |Yes |BitsInPerSecond |BitsPerSecond |Average |Bits ingressing Azure per second |No Dimensions | -|BitsOutPerSecond |Yes |BitsOutPerSecond |BitsPerSecond |Average |Bits egressing Azure per second |No Dimensions | --## microsoft.network/expressroutegateways -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ErGatewayConnectionBitsInPerSecond |No |Bits In Per Second |BitsPerSecond |Average |Bits per second ingressing Azure via ExpressRoute Gateway which can be further split for specific connections |ConnectionName | -|ErGatewayConnectionBitsOutPerSecond |No |Bits Out Per Second |BitsPerSecond |Average |Bits per second egressing Azure via ExpressRoute Gateway which can be further split for specific connections |ConnectionName | -|ExpressRouteGatewayActiveFlows |No |Active Flows |Count |Average |Number of Active Flows on ExpressRoute Gateway |roleInstance | -|ExpressRouteGatewayBitsPerSecond |No |Bits Received Per second |BitsPerSecond |Average |Total Bits received on ExpressRoute Gateway per second |roleInstance | -|ExpressRouteGatewayCountOfRoutesAdvertisedToPeer |Yes |Count Of Routes Advertised to Peer |Count |Maximum |Count Of Routes Advertised To Peer by ExpressRoute Gateway |roleInstance | -|ExpressRouteGatewayCountOfRoutesLearnedFromPeer |Yes |Count Of Routes Learned from Peer |Count |Maximum |Count Of Routes Learned From Peer by ExpressRoute Gateway |roleInstance | -|ExpressRouteGatewayCpuUtilization |Yes |CPU utilization |Percent |Average |CPU Utilization of the ExpressRoute Gateway |roleInstance | -|ExpressRouteGatewayFrequencyOfRoutesChanged |No |Frequency of Routes change |Count |Total |Frequency of Routes change in ExpressRoute Gateway |roleInstance | -|ExpressRouteGatewayMaxFlowsCreationRate |No |Max Flows Created Per Second |CountPerSecond |Maximum |Maximum Number of Flows Created Per Second on ExpressRoute Gateway |roleInstance, direction | -|ExpressRouteGatewayNumberOfVmInVnet |No |Number of VMs in the Virtual Network |Count |Maximum |Number of VMs in the Virtual Network |No Dimensions | -|ExpressRouteGatewayPacketsPerSecond |No |Packets received per second |CountPerSecond |Average |Total Packets received on ExpressRoute Gateway per second |roleInstance | --## Microsoft.Network/expressRoutePorts -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AdminState |Yes |AdminState |Count |Average |Admin state of the port |Link | -|FastPathRoutesCountForDirectPort |Yes |FastPathRoutesCount |Count |Maximum |Count of fastpath routes configured on port |No Dimensions | -|LineProtocol |Yes |LineProtocol |Count |Average |Line protocol status of the port |Link | -|PortBitsInPerSecond |No |BitsInPerSecond |BitsPerSecond |Average |Bits ingressing Azure per second |Link | -|PortBitsOutPerSecond |No |BitsOutPerSecond |BitsPerSecond |Average |Bits egressing Azure per second |Link | -|RxLightLevel |Yes |RxLightLevel |Count |Average |Rx Light level in dBm |Link, Lane | -|TxLightLevel |Yes |TxLightLevel |Count |Average |Tx light level in dBm |Link, Lane | --## Microsoft.Network/frontdoors -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BackendHealthPercentage |Yes |Backend Health Percentage |Percent |Average |The percentage of successful health probes from the HTTP/S proxy to backends |Backend, BackendPool | -|BackendRequestCount |Yes |Backend Request Count |Count |Total |The number of requests sent from the HTTP/S proxy to backends |HttpStatus, HttpStatusGroup, Backend | -|BackendRequestLatency |Yes |Backend Request Latency |MilliSeconds |Average |The time calculated from when the request was sent by the HTTP/S proxy to the backend until the HTTP/S proxy received the last response byte from the backend |Backend | -|BillableResponseSize |Yes |Billable Response Size |Bytes |Total |The number of billable bytes (minimum 2KB per request) sent as responses from HTTP/S proxy to clients. |HttpStatus, HttpStatusGroup, ClientRegion, ClientCountry | -|RequestCount |Yes |Request Count |Count |Total |The number of client requests served by the HTTP/S proxy |HttpStatus, HttpStatusGroup, ClientRegion, ClientCountry | -|RequestSize |Yes |Request Size |Bytes |Total |The number of bytes sent as requests from clients to the HTTP/S proxy |HttpStatus, HttpStatusGroup, ClientRegion, ClientCountry | -|ResponseSize |Yes |Response Size |Bytes |Total |The number of bytes sent as responses from HTTP/S proxy to clients |HttpStatus, HttpStatusGroup, ClientRegion, ClientCountry | -|TotalLatency |Yes |Total Latency |MilliSeconds |Average |The time calculated from when the client request was received by the HTTP/S proxy until the client acknowledged the last response byte from the HTTP/S proxy |HttpStatus, HttpStatusGroup, ClientRegion, ClientCountry | -|WebApplicationFirewallRequestCount |Yes |Web Application Firewall Request Count |Count |Total |The number of client requests processed by the Web Application Firewall |PolicyName, RuleName, Action | --## Microsoft.Network/loadBalancers -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AllocatedSnatPorts |No |Allocated SNAT Ports |Count |Average |Total number of SNAT ports allocated within time period |FrontendIPAddress, BackendIPAddress, ProtocolType, IsAwaitingRemoval | -|ByteCount |Yes |Byte Count |Bytes |Total |Total number of Bytes transmitted within time period |FrontendIPAddress, FrontendPort, Direction | -|DipAvailability |Yes |Health Probe Status |Count |Average |Average Load Balancer health probe status per time duration |ProtocolType, BackendPort, FrontendIPAddress, FrontendPort, BackendIPAddress | -|GlobalBackendAvailability |Yes |Health Probe Status |Count |Average |Azure Cross-region Load Balancer backend health and status per time duration |FrontendIPAddress, FrontendPort, BackendIPAddress, ProtocolType, FrontendRegion, BackendRegion | -|PacketCount |Yes |Packet Count |Count |Total |Total number of Packets transmitted within time period |FrontendIPAddress, FrontendPort, Direction | -|SnatConnectionCount |Yes |SNAT Connection Count |Count |Total |Total number of new SNAT connections created within time period |FrontendIPAddress, BackendIPAddress, ConnectionState | -|SYNCount |Yes |SYN Count |Count |Total |Total number of SYN Packets transmitted within time period |FrontendIPAddress, FrontendPort, Direction | -|UsedSnatPorts |No |Used SNAT Ports |Count |Average |Total number of SNAT ports used within time period |FrontendIPAddress, BackendIPAddress, ProtocolType, IsAwaitingRemoval | -|VipAvailability |Yes |Data Path Availability |Count |Average |Average Load Balancer data path availability per time duration |FrontendIPAddress, FrontendPort | --## Microsoft.Network/natGateways -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ByteCount |No |Bytes |Bytes |Total |Total number of Bytes transmitted within time period |Protocol, Direction | -|DatapathAvailability |No |Datapath Availability (Preview) |Count |Average |NAT Gateway Datapath Availability |No Dimensions | -|PacketCount |No |Packets |Count |Total |Total number of Packets transmitted within time period |Protocol, Direction | -|PacketDropCount |No |Dropped Packets |Count |Total |Count of dropped packets |No Dimensions | -|SNATConnectionCount |No |SNAT Connection Count |Count |Total |Total concurrent active connections |Protocol, ConnectionState | -|TotalConnectionCount |No |Total SNAT Connection Count |Count |Total |Total number of active SNAT connections |Protocol | --## Microsoft.Network/networkInterfaces -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BytesReceivedRate |Yes |Bytes Received |Bytes |Total |Number of bytes the Network Interface received |No Dimensions | -|BytesSentRate |Yes |Bytes Sent |Bytes |Total |Number of bytes the Network Interface sent |No Dimensions | -|PacketsReceivedRate |Yes |Packets Received |Count |Total |Number of packets the Network Interface received |No Dimensions | -|PacketsSentRate |Yes |Packets Sent |Count |Total |Number of packets the Network Interface sent |No Dimensions | --## Microsoft.Network/networkWatchers/connectionMonitors -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AverageRoundtripMs |Yes |Avg. Round-trip Time (ms) (classic) |MilliSeconds |Average |Average network round-trip time (ms) for connectivity monitoring probes sent between source and destination |No Dimensions | -|ChecksFailedPercent |Yes |Checks Failed Percent |Percent |Average |% of connectivity monitoring checks failed |SourceAddress, SourceName, SourceResourceId, SourceType, Protocol, DestinationAddress, DestinationName, DestinationResourceId, DestinationType, DestinationPort, TestGroupName, TestConfigurationName, SourceIP, DestinationIP, SourceSubnet, DestinationSubnet | -|ProbesFailedPercent |Yes |% Probes Failed (classic) |Percent |Average |% of connectivity monitoring probes failed |No Dimensions | -|RoundTripTimeMs |Yes |Round-Trip Time (ms) |MilliSeconds |Average |Round-trip time in milliseconds for the connectivity monitoring checks |SourceAddress, SourceName, SourceResourceId, SourceType, Protocol, DestinationAddress, DestinationName, DestinationResourceId, DestinationType, DestinationPort, TestGroupName, TestConfigurationName, SourceIP, DestinationIP, SourceSubnet, DestinationSubnet | -|TestResult |Yes |Test Result |Count |Average |Connection monitor test result |SourceAddress, SourceName, SourceResourceId, SourceType, Protocol, DestinationAddress, DestinationName, DestinationResourceId, DestinationType, DestinationPort, TestGroupName, TestConfigurationName, TestResultCriterion, SourceIP, DestinationIP, SourceSubnet, DestinationSubnet | --## microsoft.network/p2svpngateways -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|P2SBandwidth |Yes |Gateway P2S Bandwidth |BytesPerSecond |Average |Point-to-site bandwidth of a gateway in bytes per second |Instance | -|P2SConnectionCount |Yes |P2S Connection Count |Count |Total |Point-to-site connection count of a gateway |Protocol, Instance | -|UserVpnRouteCount |No |User Vpn Route Count |Count |Total |Count of P2S User Vpn routes learned by gateway |RouteType, Instance | --## Microsoft.Network/privateDnsZones -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|QueryVolume |No |Query Volume |Count |Total |Number of queries served for a Private DNS zone |No Dimensions | -|RecordSetCapacityUtilization |No |Record Set Capacity Utilization |Percent |Maximum |Percent of Record Set capacity utilized by a Private DNS zone |No Dimensions | -|RecordSetCount |No |Record Set Count |Count |Maximum |Number of Record Sets in a Private DNS zone |No Dimensions | -|VirtualNetworkLinkCapacityUtilization |No |Virtual Network Link Capacity Utilization |Percent |Maximum |Percent of Virtual Network Link capacity utilized by a Private DNS zone |No Dimensions | -|VirtualNetworkLinkCount |No |Virtual Network Link Count |Count |Maximum |Number of Virtual Networks linked to a Private DNS zone |No Dimensions | -|VirtualNetworkWithRegistrationCapacityUtilization |No |Virtual Network Registration Link Capacity Utilization |Percent |Maximum |Percent of Virtual Network Link with auto-registration capacity utilized by a Private DNS zone |No Dimensions | -|VirtualNetworkWithRegistrationLinkCount |No |Virtual Network Registration Link Count |Count |Maximum |Number of Virtual Networks linked to a Private DNS zone with auto-registration enabled |No Dimensions | --## Microsoft.Network/privateEndpoints -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|PEBytesIn |Yes |Bytes In |Count |Total |Total number of Bytes Out |No Dimensions | -|PEBytesOut |Yes |Bytes Out |Count |Total |Total number of Bytes Out |No Dimensions | --## Microsoft.Network/privateLinkServices -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|PLSBytesIn |Yes |Bytes In |Count |Total |Total number of Bytes Out |PrivateLinkServiceId | -|PLSBytesOut |Yes |Bytes Out |Count |Total |Total number of Bytes Out |PrivateLinkServiceId | -|PLSNatPortsUsage |Yes |Nat Ports Usage |Percent |Average |Nat Ports Usage |PrivateLinkServiceId, PrivateLinkServiceIPAddress | --## Microsoft.Network/publicIPAddresses -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ByteCount |Yes |Byte Count |Bytes |Total |Total number of Bytes transmitted within time period |Port, Direction | -|BytesDroppedDDoS |Yes |Inbound bytes dropped DDoS |BytesPerSecond |Maximum |Inbound bytes dropped DDoS |No Dimensions | -|BytesForwardedDDoS |Yes |Inbound bytes forwarded DDoS |BytesPerSecond |Maximum |Inbound bytes forwarded DDoS |No Dimensions | -|BytesInDDoS |Yes |Inbound bytes DDoS |BytesPerSecond |Maximum |Inbound bytes DDoS |No Dimensions | -|DDoSTriggerSYNPackets |Yes |Inbound SYN packets to trigger DDoS mitigation |CountPerSecond |Maximum |Inbound SYN packets to trigger DDoS mitigation |No Dimensions | -|DDoSTriggerTCPPackets |Yes |Inbound TCP packets to trigger DDoS mitigation |CountPerSecond |Maximum |Inbound TCP packets to trigger DDoS mitigation |No Dimensions | -|DDoSTriggerUDPPackets |Yes |Inbound UDP packets to trigger DDoS mitigation |CountPerSecond |Maximum |Inbound UDP packets to trigger DDoS mitigation |No Dimensions | -|IfUnderDDoSAttack |Yes |Under DDoS attack or not |Count |Maximum |Under DDoS attack or not |No Dimensions | -|PacketCount |Yes |Packet Count |Count |Total |Total number of Packets transmitted within time period |Port, Direction | -|PacketsDroppedDDoS |Yes |Inbound packets dropped DDoS |CountPerSecond |Maximum |Inbound packets dropped DDoS |No Dimensions | -|PacketsForwardedDDoS |Yes |Inbound packets forwarded DDoS |CountPerSecond |Maximum |Inbound packets forwarded DDoS |No Dimensions | -|PacketsInDDoS |Yes |Inbound packets DDoS |CountPerSecond |Maximum |Inbound packets DDoS |No Dimensions | -|SynCount |Yes |SYN Count |Count |Total |Total number of SYN Packets transmitted within time period |Port, Direction | -|TCPBytesDroppedDDoS |Yes |Inbound TCP bytes dropped DDoS |BytesPerSecond |Maximum |Inbound TCP bytes dropped DDoS |No Dimensions | -|TCPBytesForwardedDDoS |Yes |Inbound TCP bytes forwarded DDoS |BytesPerSecond |Maximum |Inbound TCP bytes forwarded DDoS |No Dimensions | -|TCPBytesInDDoS |Yes |Inbound TCP bytes DDoS |BytesPerSecond |Maximum |Inbound TCP bytes DDoS |No Dimensions | -|TCPPacketsDroppedDDoS |Yes |Inbound TCP packets dropped DDoS |CountPerSecond |Maximum |Inbound TCP packets dropped DDoS |No Dimensions | -|TCPPacketsForwardedDDoS |Yes |Inbound TCP packets forwarded DDoS |CountPerSecond |Maximum |Inbound TCP packets forwarded DDoS |No Dimensions | -|TCPPacketsInDDoS |Yes |Inbound TCP packets DDoS |CountPerSecond |Maximum |Inbound TCP packets DDoS |No Dimensions | -|UDPBytesDroppedDDoS |Yes |Inbound UDP bytes dropped DDoS |BytesPerSecond |Maximum |Inbound UDP bytes dropped DDoS |No Dimensions | -|UDPBytesForwardedDDoS |Yes |Inbound UDP bytes forwarded DDoS |BytesPerSecond |Maximum |Inbound UDP bytes forwarded DDoS |No Dimensions | -|UDPBytesInDDoS |Yes |Inbound UDP bytes DDoS |BytesPerSecond |Maximum |Inbound UDP bytes DDoS |No Dimensions | -|UDPPacketsDroppedDDoS |Yes |Inbound UDP packets dropped DDoS |CountPerSecond |Maximum |Inbound UDP packets dropped DDoS |No Dimensions | -|UDPPacketsForwardedDDoS |Yes |Inbound UDP packets forwarded DDoS |CountPerSecond |Maximum |Inbound UDP packets forwarded DDoS |No Dimensions | -|UDPPacketsInDDoS |Yes |Inbound UDP packets DDoS |CountPerSecond |Maximum |Inbound UDP packets DDoS |No Dimensions | -|VipAvailability |Yes |Data Path Availability |Count |Average |Average IP Address availability per time duration |Port | --## Microsoft.Network/trafficManagerProfiles -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|ProbeAgentCurrentEndpointStateByProfileResourceId |Yes |Endpoint Status by Endpoint |Count |Maximum |1 if an endpoint's probe status is "Enabled", 0 otherwise. |EndpointName | -|QpsByEndpoint |Yes |Queries by Endpoint Returned |Count |Total |Number of times a Traffic Manager endpoint was returned in the given time frame |EndpointName | --## Microsoft.Network/virtualHubs -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BgpPeerStatus |No |Bgp Peer Status |Count |Maximum |1 - Connected, 0 - Not connected |routeserviceinstance, bgppeerip, bgppeertype | -|CountOfRoutesAdvertisedToPeer |No |Count Of Routes Advertised To Peer |Count |Maximum |Total number of routes advertised to peer |routeserviceinstance, bgppeerip, bgppeertype | -|CountOfRoutesLearnedFromPeer |No |Count Of Routes Learned From Peer |Count |Maximum |Total number of routes learned from peer |routeserviceinstance, bgppeerip, bgppeertype | -|VirtualHubDataProcessed |No |Data Processed by the Virtual Hub Router |Bytes |Total |Data Processed by the Virtual Hub Router |No Dimensions | --## microsoft.network/virtualnetworkgateways -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AverageBandwidth |Yes |Gateway S2S Bandwidth |BytesPerSecond |Average |Site-to-site bandwidth of a gateway in bytes per second |Instance | -|BgpPeerStatus |No |BGP Peer Status |Count |Average |Status of BGP peer |BgpPeerAddress, Instance | -|BgpRoutesAdvertised |Yes |BGP Routes Advertised |Count |Total |Count of Bgp Routes Advertised through tunnel |BgpPeerAddress, Instance | -|BgpRoutesLearned |Yes |BGP Routes Learned |Count |Total |Count of Bgp Routes Learned through tunnel |BgpPeerAddress, Instance | -|ExpressRouteGatewayActiveFlows |No |Active Flows |Count |Average |Number of Active Flows on ExpressRoute Gateway |roleInstance | -|ExpressRouteGatewayBitsPerSecond |No |Bits Received Per second |BitsPerSecond |Average |Total Bits received on ExpressRoute Gateway per second |roleInstance | -|ExpressRouteGatewayCountOfRoutesAdvertisedToPeer |Yes |Count Of Routes Advertised to Peer |Count |Maximum |Count Of Routes Advertised To Peer by ExpressRoute Gateway |roleInstance | -|ExpressRouteGatewayCountOfRoutesLearnedFromPeer |Yes |Count Of Routes Learned from Peer |Count |Maximum |Count Of Routes Learned From Peer by ExpressRoute Gateway |roleInstance | -|ExpressRouteGatewayCpuUtilization |Yes |CPU utilization |Percent |Average |CPU Utilization of the ExpressRoute Gateway |roleInstance | -|ExpressRouteGatewayFrequencyOfRoutesChanged |No |Frequency of Routes change |Count |Total |Frequency of Routes change in ExpressRoute Gateway |roleInstance | -|ExpressRouteGatewayMaxFlowsCreationRate |No |Max Flows Created Per Second |CountPerSecond |Maximum |Maximum Number of Flows Created Per Second on ExpressRoute Gateway |roleInstance, direction | -|ExpressRouteGatewayNumberOfVmInVnet |No |Number of VMs in the Virtual Network |Count |Maximum |Number of VMs in the Virtual Network |roleInstance | -|ExpressRouteGatewayPacketsPerSecond |No |Packets received per second |CountPerSecond |Average |Total Packets received on ExpressRoute Gateway per second |roleInstance | -|MmsaCount |Yes |Tunnel MMSA Count |Count |Total |MMSA Count |ConnectionName, RemoteIP, Instance | -|P2SBandwidth |Yes |Gateway P2S Bandwidth |BytesPerSecond |Average |Point-to-site bandwidth of a gateway in bytes per second |Instance | -|P2SConnectionCount |Yes |P2S Connection Count |Count |Total |Point-to-site connection count of a gateway |Protocol, Instance | -|QmsaCount |Yes |Tunnel QMSA Count |Count |Total |QMSA Count |ConnectionName, RemoteIP, Instance | -|TunnelAverageBandwidth |Yes |Tunnel Bandwidth |BytesPerSecond |Average |Average bandwidth of a tunnel in bytes per second |ConnectionName, RemoteIP, Instance | -|TunnelEgressBytes |Yes |Tunnel Egress Bytes |Bytes |Total |Outgoing bytes of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelEgressPacketDropCount |Yes |Tunnel Egress Packet Drop Count |Count |Total |Count of outgoing packets dropped by tunnel |ConnectionName, RemoteIP, Instance | -|TunnelEgressPacketDropTSMismatch |Yes |Tunnel Egress TS Mismatch Packet Drop |Count |Total |Outgoing packet drop count from traffic selector mismatch of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelEgressPackets |Yes |Tunnel Egress Packets |Count |Total |Outgoing packet count of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelIngressBytes |Yes |Tunnel Ingress Bytes |Bytes |Total |Incoming bytes of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelIngressPacketDropCount |Yes |Tunnel Ingress Packet Drop Count |Count |Total |Count of incoming packets dropped by tunnel |ConnectionName, RemoteIP, Instance | -|TunnelIngressPacketDropTSMismatch |Yes |Tunnel Ingress TS Mismatch Packet Drop |Count |Total |Incoming packet drop count from traffic selector mismatch of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelIngressPackets |Yes |Tunnel Ingress Packets |Count |Total |Incoming packet count of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelNatAllocations |No |Tunnel NAT Allocations |Count |Total |Count of allocations for a NAT rule on a tunnel |NatRule, ConnectionName, RemoteIP, Instance | -|TunnelNatedBytes |No |Tunnel NATed Bytes |Bytes |Total |Number of bytes that were NATed on a tunnel by a NAT rule |NatRule, ConnectionName, RemoteIP, Instance | -|TunnelNatedPackets |No |Tunnel NATed Packets |Count |Total |Number of packets that were NATed on a tunnel by a NAT rule |NatRule, ConnectionName, RemoteIP, Instance | -|TunnelNatFlowCount |No |Tunnel NAT Flows |Count |Total |Number of NAT flows on a tunnel by flow type and NAT rule |NatRule, FlowType, ConnectionName, RemoteIP, Instance | -|TunnelNatPacketDrop |No |Tunnel NAT Packet Drops |Count |Total |Number of NATed packets on a tunnel that dropped by drop type and NAT rule |NatRule, DropType, ConnectionName, RemoteIP, Instance | -|TunnelPeakPackets |Yes |Tunnel Peak PPS |Count |Maximum |Tunnel Peak Packets Per Second |ConnectionName, RemoteIP, Instance | -|TunnelReverseNatedBytes |No |Tunnel Reverse NATed Bytes |Bytes |Total |Number of bytes that were reverse NATed on a tunnel by a NAT rule |NatRule, ConnectionName, RemoteIP, Instance | -|TunnelReverseNatedPackets |No |Tunnel Reverse NATed Packets |Count |Total |Number of packets on a tunnel that were reverse NATed by a NAT rule |NatRule, ConnectionName, RemoteIP, Instance | -|TunnelTotalFlowCount |Yes |Tunnel Total Flow Count |Count |Total |Total flow count on a tunnel |ConnectionName, RemoteIP, Instance | -|UserVpnRouteCount |No |User Vpn Route Count |Count |Total |Count of P2S User Vpn routes learned by gateway |RouteType, Instance | -|VnetAddressPrefixCount |Yes |VNet Address Prefix Count |Count |Total |Count of Vnet address prefixes behind gateway |Instance | --## Microsoft.Network/virtualNetworks -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|BytesDroppedDDoS |Yes |Inbound bytes dropped DDoS |BytesPerSecond |Maximum |Inbound bytes dropped DDoS |ProtectedIPAddress | -|BytesForwardedDDoS |Yes |Inbound bytes forwarded DDoS |BytesPerSecond |Maximum |Inbound bytes forwarded DDoS |ProtectedIPAddress | -|BytesInDDoS |Yes |Inbound bytes DDoS |BytesPerSecond |Maximum |Inbound bytes DDoS |ProtectedIPAddress | -|DDoSTriggerSYNPackets |Yes |Inbound SYN packets to trigger DDoS mitigation |CountPerSecond |Maximum |Inbound SYN packets to trigger DDoS mitigation |ProtectedIPAddress | -|DDoSTriggerTCPPackets |Yes |Inbound TCP packets to trigger DDoS mitigation |CountPerSecond |Maximum |Inbound TCP packets to trigger DDoS mitigation |ProtectedIPAddress | -|DDoSTriggerUDPPackets |Yes |Inbound UDP packets to trigger DDoS mitigation |CountPerSecond |Maximum |Inbound UDP packets to trigger DDoS mitigation |ProtectedIPAddress | -|IfUnderDDoSAttack |Yes |Under DDoS attack or not |Count |Maximum |Under DDoS attack or not |ProtectedIPAddress | -|PacketsDroppedDDoS |Yes |Inbound packets dropped DDoS |CountPerSecond |Maximum |Inbound packets dropped DDoS |ProtectedIPAddress | -|PacketsForwardedDDoS |Yes |Inbound packets forwarded DDoS |CountPerSecond |Maximum |Inbound packets forwarded DDoS |ProtectedIPAddress | -|PacketsInDDoS |Yes |Inbound packets DDoS |CountPerSecond |Maximum |Inbound packets DDoS |ProtectedIPAddress | -|PingMeshAverageRoundtripMs |Yes |Round trip time for Pings to a VM |MilliSeconds |Average |Round trip time for Pings sent to a destination VM |SourceCustomerAddress, DestinationCustomerAddress | -|PingMeshProbesFailedPercent |Yes |Failed Pings to a VM |Percent |Average |Percent of number of failed Pings to total sent Pings of a destination VM |SourceCustomerAddress, DestinationCustomerAddress | -|TCPBytesDroppedDDoS |Yes |Inbound TCP bytes dropped DDoS |BytesPerSecond |Maximum |Inbound TCP bytes dropped DDoS |ProtectedIPAddress | -|TCPBytesForwardedDDoS |Yes |Inbound TCP bytes forwarded DDoS |BytesPerSecond |Maximum |Inbound TCP bytes forwarded DDoS |ProtectedIPAddress | -|TCPBytesInDDoS |Yes |Inbound TCP bytes DDoS |BytesPerSecond |Maximum |Inbound TCP bytes DDoS |ProtectedIPAddress | -|TCPPacketsDroppedDDoS |Yes |Inbound TCP packets dropped DDoS |CountPerSecond |Maximum |Inbound TCP packets dropped DDoS |ProtectedIPAddress | -|TCPPacketsForwardedDDoS |Yes |Inbound TCP packets forwarded DDoS |CountPerSecond |Maximum |Inbound TCP packets forwarded DDoS |ProtectedIPAddress | -|TCPPacketsInDDoS |Yes |Inbound TCP packets DDoS |CountPerSecond |Maximum |Inbound TCP packets DDoS |ProtectedIPAddress | -|UDPBytesDroppedDDoS |Yes |Inbound UDP bytes dropped DDoS |BytesPerSecond |Maximum |Inbound UDP bytes dropped DDoS |ProtectedIPAddress | -|UDPBytesForwardedDDoS |Yes |Inbound UDP bytes forwarded DDoS |BytesPerSecond |Maximum |Inbound UDP bytes forwarded DDoS |ProtectedIPAddress | -|UDPBytesInDDoS |Yes |Inbound UDP bytes DDoS |BytesPerSecond |Maximum |Inbound UDP bytes DDoS |ProtectedIPAddress | -|UDPPacketsDroppedDDoS |Yes |Inbound UDP packets dropped DDoS |CountPerSecond |Maximum |Inbound UDP packets dropped DDoS |ProtectedIPAddress | -|UDPPacketsForwardedDDoS |Yes |Inbound UDP packets forwarded DDoS |CountPerSecond |Maximum |Inbound UDP packets forwarded DDoS |ProtectedIPAddress | -|UDPPacketsInDDoS |Yes |Inbound UDP packets DDoS |CountPerSecond |Maximum |Inbound UDP packets DDoS |ProtectedIPAddress | --## Microsoft.Network/virtualRouters -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|PeeringAvailability |Yes |Bgp Availability |Percent |Average |BGP Availability between VirtualRouter and remote peers |Peer | --## microsoft.network/vpngateways -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|AverageBandwidth |Yes |Gateway S2S Bandwidth |BytesPerSecond |Average |Site-to-site bandwidth of a gateway in bytes per second |Instance | -|BgpPeerStatus |No |BGP Peer Status |Count |Average |Status of BGP peer |BgpPeerAddress, Instance | -|BgpRoutesAdvertised |Yes |BGP Routes Advertised |Count |Total |Count of Bgp Routes Advertised through tunnel |BgpPeerAddress, Instance | -|BgpRoutesLearned |Yes |BGP Routes Learned |Count |Total |Count of Bgp Routes Learned through tunnel |BgpPeerAddress, Instance | -|MmsaCount |Yes |Tunnel MMSA Count |Count |Total |MMSA Count |ConnectionName, RemoteIP, Instance | -|QmsaCount |Yes |Tunnel QMSA Count |Count |Total |QMSA Count |ConnectionName, RemoteIP, Instance | -|TunnelAverageBandwidth |Yes |Tunnel Bandwidth |BytesPerSecond |Average |Average bandwidth of a tunnel in bytes per second |ConnectionName, RemoteIP, Instance | -|TunnelEgressBytes |Yes |Tunnel Egress Bytes |Bytes |Total |Outgoing bytes of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelEgressPacketDropCount |Yes |Tunnel Egress Packet Drop Count |Count |Total |Count of outgoing packets dropped by tunnel |ConnectionName, RemoteIP, Instance | -|TunnelEgressPacketDropTSMismatch |Yes |Tunnel Egress TS Mismatch Packet Drop |Count |Total |Outgoing packet drop count from traffic selector mismatch of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelEgressPackets |Yes |Tunnel Egress Packets |Count |Total |Outgoing packet count of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelIngressBytes |Yes |Tunnel Ingress Bytes |Bytes |Total |Incoming bytes of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelIngressPacketDropCount |Yes |Tunnel Ingress Packet Drop Count |Count |Total |Count of incoming packets dropped by tunnel |ConnectionName, RemoteIP, Instance | -|TunnelIngressPacketDropTSMismatch |Yes |Tunnel Ingress TS Mismatch Packet Drop |Count |Total |Incoming packet drop count from traffic selector mismatch of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelIngressPackets |Yes |Tunnel Ingress Packets |Count |Total |Incoming packet count of a tunnel |ConnectionName, RemoteIP, Instance | -|TunnelNatAllocations |No |Tunnel NAT Allocations |Count |Total |Count of allocations for a NAT rule on a tunnel |NatRule, ConnectionName, RemoteIP, Instance | -|TunnelNatedBytes |No |Tunnel NATed Bytes |Bytes |Total |Number of bytes that were NATed on a tunnel by a NAT rule |NatRule, ConnectionName, RemoteIP, Instance | -|TunnelNatedPackets |No |Tunnel NATed Packets |Count |Total |Number of packets that were NATed on a tunnel by a NAT rule |NatRule, ConnectionName, RemoteIP, Instance | -|TunnelNatFlowCount |No |Tunnel NAT Flows |Count |Total |Number of NAT flows on a tunnel by flow type and NAT rule |NatRule, FlowType, ConnectionName, RemoteIP, Instance | -|TunnelNatPacketDrop |No |Tunnel NAT Packet Drops |Count |Total |Number of NATed packets on a tunnel that dropped by drop type and NAT rule |NatRule, DropType, ConnectionName, RemoteIP, Instance | -|TunnelPeakPackets |Yes |Tunnel Peak PPS |Count |Maximum |Tunnel Peak Packets Per Second |ConnectionName, RemoteIP, Instance | -|TunnelReverseNatedBytes |No |Tunnel Reverse NATed Bytes |Bytes |Total |Number of bytes that were reverse NATed on a tunnel by a NAT rule |NatRule, ConnectionName, RemoteIP, Instance | -|TunnelReverseNatedPackets |No |Tunnel Reverse NATed Packets |Count |Total |Number of packets on a tunnel that were reverse NATed by a NAT rule |NatRule, ConnectionName, RemoteIP, Instance | -|TunnelTotalFlowCount |Yes |Tunnel Total Flow Count |Count |Total |Total flow count on a tunnel |ConnectionName, RemoteIP, Instance | -|VnetAddressPrefixCount |Yes |VNet Address Prefix Count |Count |Total |Count of Vnet address prefixes behind gateway |Instance | --## Microsoft.NetworkAnalytics/DataConnectors -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|DataIngested |No |Data Ingested |Bytes |Total |The volume of data ingested by the pipeline (bytes). |No Dimensions | -|MalformedData |Yes |Malformed Data |Count |Total |The number of files unable to be processed by the pipeline. |No Dimensions | -|ProcessedFileCount |Yes |Processed File Count |Count |Total |The number of files processed by the data connector. |No Dimensions | -|Running |Yes |Running |Unspecified |Count |Values greater than 0 indicate that the pipeline is ready to process data. |No Dimensions | --## Microsoft.NetworkFunction/azureTrafficCollectors -<!-- Data source : naam--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|count |Yes |Flow Records |Count |Total |Flow Records Processed by ATC. |RoleInstance | -|usage_active |Yes |CPU Usage |Percent |Average |CPU Usage Percentage. |Hostname | -|used_percent |Yes |Memory Usage |Percent |Average |Memory Usage Percentage. |Hostname | --## Microsoft.NotificationHubs/Namespaces/NotificationHubs -<!-- Data source : arm--> --|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| -|||||||| -|incoming |Yes |Incoming Messages |Count |Total |The count of all successful send API calls. |No Dimensions | -|incoming.all.failedrequests |Yes |All Incoming Failed Requests |Count |Total |Total incoming failed requests for a notification hub |No Dimensions | -|incoming.all.requests |Yes |All Incoming Requests |Count |Total |Total incoming requests for a notification hub |No Dimensions | -|incoming.scheduled |Yes |Scheduled Push Notifications Sent |Count |Total |Scheduled Push Notifications Sent |No Dimensions | -|incoming.scheduled.cancel |Yes |Scheduled Push Notifications Cancelled |Count |Total |Scheduled Push Notifications Cancelled |No Dimensions | -|installation.all |Yes |Installation Management Operations |Count |Total |Installation Management Operations |No Dimensions | -|installation.delete |Yes |Delete Installation Operations |Count |Total |Delete Installation Operations |No Dimensions | -|installation.get |Yes |Get Installation Operations |Count |Total |Get Installation Operations |No Dimensions | -|installation.patch |Yes |Patch Installation Operations |Count |Total |Patch Installation Operations |No Dimensions | -|installation.upsert |Yes |Create or Update Installation Operations |Count |Total |Create or Update Installation Operations |No Dimensions | -|notificationhub.pushes |Yes |All Outgoing Notifications |Count |Total |All outgoing notifications of the notification hub |No Dimensions | -|outgoing.allpns.badorexpiredchannel |Yes |Bad or Expired Channel Errors |Count |Total |The count of pushes that failed because the channel/token/registrationId in the registration was expired or invalid. |No Dimensions | -|outgoing.allpns.channelerror |Yes |Channel Errors |Count |Total |The count of pushes that failed because the channel was invalid not associated with the correct app throttled or expired. |No Dimensions | -|outgoing.allpns.invalidpayload |Yes |Payload Errors |Count |Total |The count of pushes that failed because the PNS returned a bad payload error. |No Dimensions | -|outgoing.allpns.pnserror |Yes |External Notification System Errors |Count |Total |The count of pushes that failed because there was a problem communicating with the PNS (excludes authentication problems). |No Dimensions | -|outgoing.allpns.success |Yes |Successful notifications |Count |Total |The count of all successful notifications. |No Dimensions | -|outgoing.apns.badchannel |Yes |APNS Bad Channel Error |Count |Total |The count of pushes that failed because the token is invalid (APNS status code: 8). |No Dimensions | -|outgoing.apns.expiredchannel |Yes |APNS Expired Channel Error |Count |Total |The count of token that were invalidated by the APNS feedback channel. |No Dimensions | -|outgoing.apns.invalidcredentials |Yes |APNS Authorization Errors |Count |Total |The count of pushes that failed because the PNS did not accept the provided credentials or the credentials are blocked. |No Dimensions | -|outgoing.apns.invalidnotificationsize |Yes |APNS Invalid Notification Size Error |Count |Total |The count of pushes that failed because the payload was too large (APNS status code: 7). |No Dimensions | -|outgoing.apns.pnserror |Yes |APNS Errors |Count |Total |The count of pushes that failed because of errors communicating with APNS. |No Dimensions | -|outgoing.apns.success |Yes |APNS Successful Notifications |Count |Total |The count of all successful notifications. |No Dimensions | -|outgoing.gcm.authenticationerror |Yes |GCM Authentication Errors |Count |Total |The count of pushes that failed because the PNS did not accept the provided credentials the credentials are blocked or the SenderId is not correctly configured in the app (GCM result: MismatchedSenderId). |No Dimensions | -|outgoing.gcm.badchannel |Yes |GCM Bad Channel Error |Count |Total |The count of pushes that failed because the registrationId in the registration was not recognized (GCM result: Invalid Registration). |No Dimensions | -|outgoing.gcm.expiredchannel |Yes |GCM Expired Channel Error |Count |Total |The count of pushes that failed because the registrationId in the registration was expired (GCM result: NotRegistered). |No Dimensions | -|outgoing.gcm.invalidcredentials |Yes |GCM Authorization Errors (Invalid Credentials) |Count |Total |The count of pushes that failed because the PNS did not accept the provided credentials or the credentials are blocked. |No Dimensions | -|outgoing.gcm.invalidnotificationformat |Yes |GCM Invalid Notification Format |Count |Total |The count of pushes that failed because the payload was not formatted correctly (GCM result: InvalidDataKey or InvalidTtl). |No Dimensions | -|outgoing.gcm.invalidnotificationsize |Yes |GCM Invalid Notification Size Error |Count |Total |The count of pushes that failed because the payload was too large (GCM result: MessageTooBig). |No Dimensions | -|outgoing.gcm.pnserror |Yes |GCM Errors |Count |Total |The count of pushes that failed because of errors communicating with GCM. |No Dimensions | -|outgoing.gcm.success |Yes |GCM Successful Notifications |Count |Total |The count of all successful notifications. |No Dimensions | -|outgoing.gcm.throttled |Yes |GCM Throttled Notifications |Count |Total |The count of pushes that failed because GCM throttled this app (GCM status code: 501-599 or result:Unavailable). |No Dimensions | -|outgoing.gcm.wrongchannel |Yes |GCM Wrong Channel Error |Count |Total |The count of pushes that failed because the registrationId in the registration is not associated to the current app (GCM result: InvalidPackageName). |No Dimensions | -|outgoing.mpns.authenticationerror |Yes |MPNS Authentication Errors |Count |Total |The count of pushes that failed because the PNS did not accept the provided credentials or the credentials are blocked. |No Dimensions | -|outgoing.mpns.badchannel |Yes |MPNS Bad Channel Error |Count |Total |The count of pushes that failed because the ChannelURI in the registration was not recognized (MPNS status: 404 not found). |No Dimensions | -|outgoing.mpns.channeldisconnected |Yes |MPNS Channel Disconnected |Count |Total |The count of pushes that failed because the ChannelURI in the registration was disconnected (MPNS status: 412 not found). |No Dimensions | -|outgoing.mpns.dropped |Yes |MPNS Dropped Notifications |Count |Total |The count of pushes that were dropped by MPNS (MPNS response header: X-NotificationStatus: QueueFull or Suppressed). |No Dimensions | -|outgoing.mpns.invalidcredentials |Yes |MPNS Invalid Credentials |Count |Total |The count of pushes that failed because the PNS did not accept the provided credentials or the credentials are blocked. |No Dimensions | -|outgoing.mpns.invalidnotificationformat |Yes |MPNS Invalid Notification Format |Count |Total |The count of pushes that failed because the payload of the notification was too large. |No Dimensions | -|outgoing.mpns.pnserror |Yes |MPNS Errors |Count |Total |The count of pushes that failed because of errors communicating with MPNS. |No Dimensions | -|outgoing.mpns.success |Yes |MPNS Successful Notifications |Count |Total |The count of all successful notifications. |No Dimensions | -|outgoing.mpns.throttled |Yes |MPNS Throttled Notifications |Count |Total |The count of pushes that failed because MPNS is throttling this app (WNS MPNS: 406 Not Acceptable). |No Dimensions | -|outgoing.wns.authenticationerror |Yes |WNS Authentication Errors |Count |Total |Notification not delivered because of errors communicating with Windows Live invalid credentials or wrong token. |No Dimensions | -|outgoing.wns.badchannel |Yes |WNS Bad Channel Error |Count |Total |The count of pushes that failed because the ChannelURI in the registration was not recognized (WNS status: 404 not found). |No Dimensions | -|outgoing.wns.channeldisconnected |Yes |WNS Channel Disconnected |Count |Total |The notification was dropped because the ChannelURI in the registration is throttled (WNS response header: X-WNS-DeviceConnectionStatus: disconnected). |No Dimensions | -|outgoing.wns.channelthrottled |Yes |WNS Channel Throttled |Count |Total |The notification was dropped because the ChannelURI in the registration is throttled (WNS response header: X-WNS-NotificationStatus:channelThrottled). |No Dimensions | -|outgoing.wns.dropped |Yes |WNS Dropped Notifications |Count |Total |The notification was dropped because the ChannelURI in the registration is throttled (X-WNS-NotificationStatus: dropped but not X-WNS-DeviceConnectionStatus: disconnected). |No Dimensions | -|outgoing.wns.expiredchannel |Yes |WNS Expired Channel Error |Count |Total |The count of |