2017-03-08 10 views
1

Azureポータルの[詳細]に表示されているアクティビティごとに、これらのメトリックにアクセスする方法を知っていますか(または可能であれば)。Azure Data Factory .NET SDKアクティビティメトリック

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); 

     } 
+0

スライスの詳細を取得します。彼らはこのレベルの詳細を含んでいません。まだ! –

+0

このためにMS接続アイテムを提起しましたか? –

+0

これでもっと掘り下げたことはありますが、.NET SDKでは実際には可能ですが、2段階のフェッチを行う必要があります。私は以下の答えを掲載しました。 – soderstromOlov

答えて

0

いくつかの調査の結果、.NET SDKに解決策が見つかりました。あなたは "二段階のフェッチ"を行う必要があります。

ちょうどPowerShellコマンドレットは、AzureRmDataFactoryActivityWindowを取得し、取得-AzureRmDataFactoryRunを確認

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; 
      } 
     } 
    } 
関連する問題