Azure 监视器管理客户端 .net

Azure monitormanagementclient .net

使用 Microsoft.Azure.Management.Monitor 的预览包,我试图将 ActivityLogs 从 Azure 获取到 .NET 应用程序中,但我不确定要输入什么作为“odataquery”。

var serviceCreds = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, secret);
var monitorClient = new MonitorManagementClient(serviceCreds);
monitorClient.SubscriptionId = subscriptionId;

var odataquery = "";
var activityLogs = await monitorClient.ActivityLogs.ListAsync(odataQuery: odataquery, cancellationToken: CancellationToken.None);

我应该在 odataQuery 变量中插入什么,我从 Azure 中的什么地方获取这个 odataQuery? Azure 有很多很棒的地方,但没有相关文档

您应该像下面这样使用它:

    //use DateTime to parse datetime.
    var startTime = DateTime.Parse("2020-03-05T01:00:00.00Z");
    var endTime = DateTime.Parse("2020-03-28T01:00:00.00Z");

    //it will throw errors if use the operator > or <, but works if using >= or <=
    var odataquery = new ODataQuery<EventData>(p => p.EventTimestamp >= startTime && p.EventTimestamp <= endTime);

    var events = client.ActivityLogs.List(odataquery);

以下是您需要注意的一些注意事项:

1.When 定义 startTimeendTime,你应该使用 DateTime.Parse() 方法而不是 DateTimeOffset.Parse().

2.The startTime 应该不超过 90 天前。

3.When 定义 odataquery,如果您使用 > or < 运算符,它将抛出错误。但是可以使用 >= or <= 运算符。