Azure数据工厂.NET SDK活动度量

Azure数据工厂.NET SDK活动度量,azure,azure-data-factory,azure-monitoring,Azure,Azure Data Factory,Azure Monitoring,是否有人知道如何(或如果可能的话)访问Azure门户中“详细信息”下显示的每个活动运行的这些指标 最初的计划是使用.NET SDK,但这些指标似乎都没有包括在内。这就是我到目前为止设法找到的 var datasliceRunListResponse = client.DataSliceRuns.List( _resourceGroupName, dataFactoryName, Dataset_De

是否有人知道如何(或如果可能的话)访问Azure门户中“详细信息”下显示的每个活动运行的这些指标

最初的计划是使用.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);

        }

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

获取切片详细信息

DateTime PipelineActivePeriodStartTime;
DataSlicerRunListResponse sliceList=新的DataSlicerRunListResponse();
DataSliceRunGetResponse sliceResponse=新的DataSliceRunGetResponse();
PipelineActivePeriodStartTime=新的日期时间(2017,3,20,07,00,0,0,DateTimeKind.Utc);
DataFactoryManagementClient=新的DataFactoryManagementClient(\u aadTokenCredentials,\u resourceManagerUri);
sliceList=client.DataSliceRuns.List(
_resourceGroupName,
_dataFactoryName,
_数据集目的地,
新的DataSlicerRunListParameters()
{
DataSliceStartTime=PipelineActivePeriodStartTime.ConvertToISO8601DateTimeString()
}
);
foreach(在sliceList.DataSliceRuns中运行DataSliceRun)
{
sliceResponse=client.DataSliceRuns.Get(_resourceGroupName,dataFactoryName,run.Id.ToString());
foreach(sliceResponse.DataSliceRun.Properties中的KeyValuePair条目)
{
开关(entry.Key.Trim())
{
案例“行”:
行=Convert.ToInt32(entry.Value);
打破
案例“数据读取”:
dataRead=entry.Value;
打破
案例“数据写入”:
datawrited=entry.Value;
打破
案例“吞吐量”:
throughput=entry.Value;
打破
案例“totalDuration”:
totalDuration=输入值;
打破
违约:
打破
}
}
}

刚刚检查了PowerShell cmdlet Get-AzureRmDataFactoryActivityWindow和Get-AzureRmDataFactoryRun。它们不包括这种级别的细节。然而您是否为此提出了MS connect项?您在这方面做了更多的挖掘,实际上可以使用.NET SDK,但您需要执行两步获取。我已经把答案贴在下面了。
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;
            }
        }
    }