Azure 数据工厂 .NET SDK 事件指标

标签 azure azure-data-factory azure-monitoring

有人知道如何(或者如果可能)访问 Azure 门户中“详细信息”下显示的每个事件运行的这些指标吗?

Screenshot from Azure Portal

最初的计划是使用 .NET SDK,但似乎没有包含这些指标。这是我到目前为止所找到的。

var datasliceRunListResponse = client.DataSliceRuns.List(
                _resourceGroupName,
                dataFactoryName,
                Dataset_Destination,
                new DataSliceRunListParameters()
                {
                    DataSliceStartTime = PipelineActivePeriodStartTime.ConvertToISO8601DateTimeString()
                }
            );

        foreach (DataSliceRun run in datasliceRunListResponse.DataSliceRuns)
        {
            Console.WriteLine("Status: \t\t{0}", run.Status);
            Console.WriteLine("DataSliceStart: \t{0}", run.DataSliceStart);
            Console.WriteLine("DataSliceEnd: \t\t{0}", run.DataSliceEnd);
            Console.WriteLine("ActivityId: \t\t{0}", run.ActivityName);
            Console.WriteLine("ProcessingStartTime: \t{0}", run.ProcessingStartTime);
            Console.WriteLine("ProcessingEndTime: \t{0}", run.ProcessingEndTime);
            Console.WriteLine("ErrorMessage: \t{0}", run.ErrorMessage);
            Console.WriteLine("Has logse: \t\t{0}", run.HasLogs.ToString());
            Console.WriteLine("Id: \t\t\t{0}", run.Id);
            Console.WriteLine("Log uri: \t{0}", run.LogUri);
            Console.WriteLine("Properties: \t{0}", run.Properties.Count);

        }

最佳答案

经过一番挖掘,我在 .NET SDK 中找到了解决方案。您需要执行“两步获取”。

获取切片详细信息

enter image description here

DateTime PipelineActivePeriodStartTime;
    DataSliceRunListResponse sliceList = new DataSliceRunListResponse();
    DataSliceRunGetResponse sliceResponse = new DataSliceRunGetResponse();
    PipelineActivePeriodStartTime = new DateTime(2017, 3, 20, 07, 00, 0, 0, DateTimeKind.Utc);

    DataFactoryManagementClient client = new DataFactoryManagementClient(_aadTokenCredentials, _resourceManagerUri);

    sliceList = client.DataSliceRuns.List(
                _resourceGroupName,
                _dataFactoryName,
                _datasetDestination,
                new DataSliceRunListParameters()
                {
                    DataSliceStartTime = PipelineActivePeriodStartTime.ConvertToISO8601DateTimeString()
                }
    );

    foreach (DataSliceRun run in sliceList.DataSliceRuns)
    {
        sliceResponse = client.DataSliceRuns.Get(_resourceGroupName, dataFactoryName, run.Id.ToString());

        foreach (KeyValuePair<string, string> entry in sliceResponse.DataSliceRun.Properties)
        {
            switch (entry.Key.Trim())
            {
                case "rows":
                    rows = Convert.ToInt32(entry.Value);
                    break;
                case "dataRead":
                    dataRead = entry.Value;
                    break;
                case "dataWritten":
                    dataWritten = entry.Value;
                    break;
                case "throughput":
                    throughtput = entry.Value;
                    break;
                case "totalDuration":
                    totalDuration = entry.Value;
                    break;
                default:
                    break;
            }
        }
    }

关于Azure 数据工厂 .NET SDK 事件指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42681054/

相关文章:

c# - Azure 数据湖与数据工厂自定义事件的连接

azure - 更改 Azure 数据工厂 v2 中的连接字符串链接服务

azure-sql-database - 通过较少的 DTU,我们观察到采用 Elastic Standard 的 Azure SQL Server 的性能更好

azure - [Azure 部署] : Can we filter Azure Resource Group Deployments by name using c#?

azure - 配置kubectl命令访问azure上的远程kubernetes集群

azure - 如何从事件访问管道属性和数据集属性

azure - 如何将 Log Analytics/Azure Monitor 挂接到角色分配中?

azure - Azure Monitor 是自定义应用程序性能监控的好商店吗

azure - 您能否保证将事件恰好一次发布到事件中心?

azure - 连接到 Azure Blob 存储