Metrics
Notification Hubs telemetry metrics reports counts of the outcomes of different operations. There are two main classes of operations:
API calls, which include call to create, update, query, and delete device registrations, along with all the send operations.
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.
Registration Management
You can add registration management operation telemetry from the Add Metrics menu in the General section.
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
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).
Metric | Description | REST identifier |
---|---|---|
Incoming Messages |
The count of all successful send API calls. |
incoming |
Outgoing Notifications
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.
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 |
Windows Notification Service (WNS)
You can access WNS metrics in the WNS tab of the Choose Metrics menu.
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 |
Apple Push Notification Service (APNS)
You can access APNS metrics in the APNS tab of the Choose Metrics menu.
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 |
Google Cloud Messaging (GCM)
You can access GCM metrics in the GCM tab of the Choose Metrics menu.
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 |
Windows Phone Push Notifications (MPNS)
You can access MPNS metrics in the MPNS tab of the Choose Metrics menu.
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 |