【问题标题】:Azure monitormanagementclient .netAzure 监视器管理客户端 .net
【发布时间】:2021-02-02 17:15:13
【问题描述】:

使用 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 有很多很棒的地方,但没有这方面的文档

【问题讨论】:

    标签: c# .net azure azure-monitoring


    【解决方案1】:

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

        //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.定义startTimeendTime时,应使用DateTime.Parse()方法而不是DateTimeOffset.Parse()

    2.startTime 不得超过 90 天前。

    3.定义odataquery时,如果使用&gt; or &lt;操作符会报错。但是使用&gt;= or &lt;=操作符就可以了。

    【讨论】:

    • 上面的代码给出错误'IActivityLogsOperations'不包含'List'的定义和最好的扩展方法重载'AccountsOperationsExtensions.List(IAccountsOperations, ODataQuery, string, bool?)'需要一个“IAAccountsOperations”类型的接收者
    • 在对上述代码稍作改动后,我得到了响应,更改为“ var events = await client.ActivityLogs.ListAsync(odataQuery: Convert.ToString(odataquery));”
    猜你喜欢
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    相关资源
    最近更新 更多