Metrics

Updated: June 16, 2015

Notification Hubs telemetry metrics reports counts of the outcomes of different operations. There are two main classes of operations:

  1. API calls, which include call to create, update, query, and delete device registrations, along with all the send operations.

  2. Notification outcomes, which include all the outcomes for the pushes to the various Platform Notification Services (PNS). These operations can be separated to obtain the count by platform.

You can add registration management operation telemetry from the Add Metrics menu in the General section.

Portal

 

Metric Description REST identifier

Registration Operation

The count of all successful registration operations (creations, updates, queries, and deletions).

registration.all

Registration Create Operations

The count of all successful registration creations.

registrations.create

Registration Update Operations

The count of all successful registration updates.

registrations.update

Registration Read Operations

The count of all successful registration queries.

registrations.get

Registration Delete Operations

The count of all successful registration deletions.

registrations.delete

Incoming messages are the API calls to the notification hub to send notifications. They are counted whether or not they result in actual notifications (for example, the tag might not be associated with any registration). Note that only successful calls are counted (i.e. not resulting in exceptions or non-200 HTTP status codes).

Portal

 

Metric Description REST identifier

Incoming Messages

The count of all successful send API calls.

incoming

For every push notification attempt, your notification hub exposes telemetry describing its outcome. These outcomes are aggregated in various metrics at both multi-platform and platform-specific levels.

You can access metrics aggregated across platforms in the General tab of the Add Metric menu.

Portal

 

Metric Description REST identifier

Successful notifications

The count of all successful notifications.

outgoing.allpns.success

Payload Errors

The count of pushes that failed because the PNS returned a bad payload error.

outgoing.allpns.invalidpayload

External Notification System Errors

The count of pushes that failed because there was a problem communicating with the PNS (excludes authentication problems).

outgoing.allpns.pnserror

Channel Errors

The count of pushes that failed because the channel was invalid, not associated with the correct app, throttled, or expired.

outgoing.allpns.channelerror

Bad or Expired Channel Errors

The count of pushes that failed because the channel/token/registrationId in the registration was expired or invalid.

outgoing.allpns.badorexpiredchannel

You can access WNS metrics in the WNS tab of the Choose Metrics menu.

Portal

The following table refers to the possible outcome of WNS and Windows Live (service used to authenticate your app with WNS).

 

Metric Description REST identifier

WNS Successful Notifications

The count of all successful notifications.

outgoing.wns.success

WNS Authorization Errors (Invalid Credentials)

The count of pushes that failed because the PNS did not accept the provided credentials or the credentials are blocked. (Windows Live does not recognize the credentials).

outgoing.wns.invalidcredentials

WNS Bad Channel Error

The count of pushes that failed because the ChannelURI in the registration was not recognized (WNS status: 404 not found).

outgoing.wns.badchannel

WNS Expired Channel Error

The count of pushes that failed because the ChannelURI is expired (WNS status: 410 Gone).

outgoing.wns.expiredchannel

WNS Throttled Notifications

The count of pushes that failed because WNS is throttling this app (WNS status: 406 Not Acceptable).

outgoing.wns.throttled

WNS Authorization Errors (Unreachable)

Windows Live is not reachable.

outgoing.wns.tokenproviderunreachable

WNS Authorization Errors (Invalid Token)

The token provided to WNS is not valid (WNS status: 401 Unauthorized).

outgoing.wns.invalidtoken

WNS Authorization Errors (Wrong Token)

The token provided to WNS is valid, but for another application (WNS status: 403 Forbidden). This can happen if the ChannelURI in the registration is associated with another app. Check that the client app is associated with the same app whose credentials are in the notification hub.

outgoing.wns.wrongtoken

WNS Invalid Notification Format

The format of the notification is invalid (WNS status: 400). Note that WNS does not reject all invalid payloads.

outgoing.wns.invalidnotificationformat

WNS Invalid Notification Size Error

The notification payload is too large (WNS status: 413).

outgoing.wns.invalidnotificationsize

WNS Channel Throttled

The notification was dropped because the ChannelURI in the registration is throttled (WNS response header: X-WNS-NotificationStatus:channelThrottled).

outgoing.wns.channelthrottled

WNS Channel Disconnected

The notification was dropped because the ChannelURI in the registration is throttled (WNS response header: X-WNS-DeviceConnectionStatus: disconnected).

outgoing.wns.channeldisconnected

WNS Dropped Notifications

The notification was dropped because the ChannelURI in the registration is throttled (X-WNS-NotificationStatus: dropped but not X-WNS-DeviceConnectionStatus: disconnected).

outgoing.wns.dropped

WNS Errors

Notification not delivered because of errors communicating with WNS.

outgoing.wns.pnserror

WNS Authentication Errors

Notification not delivered because of errors communicating with Windows Live, invalid credentials, or wrong token.

outgoing.wns.authenticationerror

You can access APNS metrics in the APNS tab of the Choose Metrics menu.

Portal

The following table refers to the possible outcomes of APNS.

 

Metric Description REST identifier

APNS Successful Notifications

The count of all successful notifications.

outgoing.apns.success

APNS Authorization Errors

The count of pushes that failed because the PNS did not accept the provided credentials, or the credentials are blocked.

outgoing.apns.invalidcredentials

APNS Bad Channel Error

The count of pushes that failed because the token is invalid (APNS status code: 8).

outgoing.apns.badchannel

APNS Expired Channel Error

The count of token that were invalidated by the APNS feedback channel.

outgoing.apns.expiredchannel

APNS Invalid Notification Size Error

The count of pushes that failed because the payload was too large (APNS status code: 7).

outgoing.apns.invalidnotificationsize

APNS Errors

The count of pushes that failed because of errors communicating with APNS.

outgoing.apns.pnserror

You can access GCM metrics in the GCM tab of the Choose Metrics menu.

Portal

The following table refers to the possible outcomes of GCM.

 

Metric Description REST identifier

GCM Successful Notifications

The count of all successful notifications.

outgoing.gcm.success

GCM Authorization Errors (Invalid Credentials)

The count of pushes that failed because the PNS did not accept the provided credentials or the credentials are blocked.

outgoing.gcm.invalidcredentials

GCM Bad Channel Error

The count of pushes that failed because the registrationId in the registration was not recognized (GCM result: Invalid Registration).

outgoing.gcm.badchannel

GCM Expired Channel Error

The count of pushes that failed because the registrationId in the registration was expired (GCM result: NotRegistered).

outgoing.gcm.expiredchannel

GCM Throttled Notifications

The count of pushes that failed because GCM throttled this app (GCM status code: 501-599, or result:Unavailable).

outgoing.gcm.throttled

GCM Invalid Notification Format

The count of pushes that failed because the payload was not formatted correctly (GCM result: InvalidDataKey or InvalidTtl).

outgoing.gcm.invalidnotificationformat

GCM Invalid Notification Size Error

The count of pushes that failed because the payload was too large (GCM result: MessageTooBig).

outgoing.gcm.invalidnotificationsize

GCM Wrong Channel Error

The count of pushes that failed because the registrationId in the registration is not associated to the current app (GCM result: InvalidPackageName).

outgoing.gcm.wrongchannel

GCM Errors

The count of pushes that failed because of errors communicating with GCM.

outgoing.gcm.pnserror

GCM Authentication Errors

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).

outgoing.gcm.authenticationerror

You can access MPNS metrics in the MPNS tab of the Choose Metrics menu.

Portal

The following table refers to the possible outcome of MPNS.

 

Metric Description REST identifier

MPNS Successful Notifications

The count of all successful notifications.

outgoing.mpns.success

MPNS Invalid Credentials

The count of pushes that failed because the PNS did not accept the provided credentials, or the credentials are blocked.

outgoing.mpns.invalidcredentials

MPNS Bad Channel Error

The count of pushes that failed because the ChannelURI in the registration was not recognized (MPNS status: 404 not found).

outgoing.mpns.badchannel

MPNS Throttled Notifications

The count of pushes that failed because MPNS is throttling this app (WNS MPNS: 406 Not Acceptable).

outgoing.mpns.throttled

MPNS Invalid Notification Format

The count of pushes that failed because the payload of the notification was too large.

outgoing.mpns.invalidnotificationformat

MPNS Channel Disconnected

The count of pushes that failed because the ChannelURI in the registration was disconnected (MPNS status: 412 not found).

outgoing.mpns.channeldisconnected

MPNS Dropped Notifications

The count of pushes that were dropped by MPNS (MPNS response header: X-NotificationStatus: QueueFull or Suppressed).

outgoing.mpns.dropped

MPNS Errors

The count of pushes that failed because of errors communicating with MPNS.

outgoing.mpns.pnserror

MPNS Authentication Errors

The count of pushes that failed because the PNS did not accept the provided credentials, or the credentials are blocked.

outgoing.mpns.authenticationerror

Show: