Azure 推送通知 API 以获取传出通知总数和已注册设备的数量
Azure push notification API to get total outgoing notifications and number of registered devices
如何检索外发通知总数和注册设备数? MS Azure 是否提供任何 API 来做到这一点?我想检索 JSON 或 XML 中的结果。
谢谢你的重播。
enter image description here
How can I retrieve number of total outgoing notifications and number of registered devices ? Does MS Azure provide any API to do that ?
我们可以使用 Azure monitor REST API 来做到这一点。
GET https://management.azure.com/{resourceUri}/providers/microsoft.insights/metrics?timespan={timespan}&interval={interval}&metric={metric}&aggregation={aggregation}&$top={$top}&$orderby={$orderby}&$filter={$filter}&resultType={resultType}&api-version=2017-05-01-preview
我们可以从这个 document 获得 Azure 监视器支持的指标。你的 resourceUri 是
var resourceUri = $"subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.NotificationHubs/Namespaces/{notificationamespace}/NotificationHubs/{notificationHubName}";
如果您想从 Supported metrics with Azure Monitor 中获取已注册的设备,我们可以知道。 公制=registration.all
如果你想获得总传出通知 metric = notificationhub.pushes
我们也可以使用 Azure SDK Microsoft.Azure.Management.Monitor.Fluent. The following is the demo code. How to get the tenatId, secretKey or application please refer to Create an Azure Active Directory application
var azureTenantId = "tenantId";
var azureSecretKey = "secret key";
var azureAppId = "Application Id";
var subscriptionId = "subscription Id";
var resourceGroup = "resource group";
var notificationamespace = "notification name space";
var notificationHubName = "notification hub ";
var serviceCreds = ApplicationTokenProvider.LoginSilentAsync(azureTenantId, azureAppId, azureSecretKey).Result;
MonitorClient monitorClient = new MonitorClient(serviceCreds) { SubscriptionId = subscriptionId };
var resourceUri = $"subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.NotificationHubs/Namespaces/{notificationamespace}/NotificationHubs/{notificationHubName}";
var metricNames = "name.value eq 'notificationhub.pushes'"; //if you want to get the registered devices please change to registration.all
string timeGrain = " and timeGrain eq duration'PT24H'";
string startDate = " and startTime eq 2018-01-01T00:00:00.919Z";
string endDate = " and endTime eq 2018-01-04T19:00:00.919Z";
var odataFilterMetrics = new ODataQuery<MetricInner>(
$"{metricNames}{timeGrain}{startDate}{endDate}");
var metrics = monitorClient.Metrics.ListWithHttpMessagesAsync(resourceUri, odataFilterMetrics).Result;
测试结果:
如何检索外发通知总数和注册设备数? MS Azure 是否提供任何 API 来做到这一点?我想检索 JSON 或 XML 中的结果。 谢谢你的重播。 enter image description here
How can I retrieve number of total outgoing notifications and number of registered devices ? Does MS Azure provide any API to do that ?
我们可以使用 Azure monitor REST API 来做到这一点。
GET https://management.azure.com/{resourceUri}/providers/microsoft.insights/metrics?timespan={timespan}&interval={interval}&metric={metric}&aggregation={aggregation}&$top={$top}&$orderby={$orderby}&$filter={$filter}&resultType={resultType}&api-version=2017-05-01-preview
我们可以从这个 document 获得 Azure 监视器支持的指标。你的 resourceUri 是
var resourceUri = $"subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.NotificationHubs/Namespaces/{notificationamespace}/NotificationHubs/{notificationHubName}";
如果您想从 Supported metrics with Azure Monitor 中获取已注册的设备,我们可以知道。 公制=registration.all
如果你想获得总传出通知 metric = notificationhub.pushes
我们也可以使用 Azure SDK Microsoft.Azure.Management.Monitor.Fluent. The following is the demo code. How to get the tenatId, secretKey or application please refer to Create an Azure Active Directory application
var azureTenantId = "tenantId";
var azureSecretKey = "secret key";
var azureAppId = "Application Id";
var subscriptionId = "subscription Id";
var resourceGroup = "resource group";
var notificationamespace = "notification name space";
var notificationHubName = "notification hub ";
var serviceCreds = ApplicationTokenProvider.LoginSilentAsync(azureTenantId, azureAppId, azureSecretKey).Result;
MonitorClient monitorClient = new MonitorClient(serviceCreds) { SubscriptionId = subscriptionId };
var resourceUri = $"subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.NotificationHubs/Namespaces/{notificationamespace}/NotificationHubs/{notificationHubName}";
var metricNames = "name.value eq 'notificationhub.pushes'"; //if you want to get the registered devices please change to registration.all
string timeGrain = " and timeGrain eq duration'PT24H'";
string startDate = " and startTime eq 2018-01-01T00:00:00.919Z";
string endDate = " and endTime eq 2018-01-04T19:00:00.919Z";
var odataFilterMetrics = new ODataQuery<MetricInner>(
$"{metricNames}{timeGrain}{startDate}{endDate}");
var metrics = monitorClient.Metrics.ListWithHttpMessagesAsync(resourceUri, odataFilterMetrics).Result;
测试结果: