Azure 数据工厂 .NET SDK activity 指标
Azure Data Factory .NET SDK activity metrics
有谁知道如何(或如果可能的话)访问 Azure 门户中 "Details" 下显示的每个 activity 运行 的这些指标?
最初的计划是使用 .NET SDK,但 none 这些指标似乎包括在内。这是我到目前为止设法找到的。
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 中找到了解决方案。你需要做一个 "two step fetch".
获取切片详细信息
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 门户中 "Details" 下显示的每个 activity 运行 的这些指标?
最初的计划是使用 .NET SDK,但 none 这些指标似乎包括在内。这是我到目前为止设法找到的。
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 中找到了解决方案。你需要做一个 "two step fetch".
获取切片详细信息
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;
}
}
}