2017-08-29 2 views
1

.NET 4.6コンソールアプリケーションを想像してください。これは、ADO.NETを使用してSQLデータベースをクエリします。Application Insightsで.net 4.6アプリケーションでサポートされているSQLコマンドテキストをキャプチャしていますか?

static void Main(string[] args) 
    { 
     TelemetryConfiguration.Active.InstrumentationKey = "my key"; 

     var tc = new TelemetryClient(TelemetryConfiguration.Active); 

     tc.TrackEvent("App start"); 

     string ConnString = "Data Source=localhost;Initial Catalog=MyDb;Persist Security Info=True;User ID=sa;Password=****;MultipleActiveResultSets=True"; 
     string SqlString = "Select * From Customers"; 
     using (SqlConnection conn = new SqlConnection(ConnString)) 
     { 
      using (SqlCommand cmd = new SqlCommand(SqlString, conn)) 
      { 
       cmd.CommandType = CommandType.Text; 

       conn.Open(); 
       using (SqlDataReader reader = cmd.ExecuteReader()) 
       { 
        var res = reader.Read(); 
       } 
      } 
     } 


     tc.TrackEvent("App stop"); 
     tc.Flush(); 
     Thread.Sleep(5000); 
    } 

この場合、SQLコマンドテキストをキャプチャしていますか?または、IISとAzureアプリケーションでのみサポートされていますか?

このサンプルでは、​​依存関係イベントでApplication Insightsのテキスト「Select * From Customers」を表示したいと考えていますが、このテキストはありません。期間、クライアントIPなどの他のプロパティはほとんどありませんが、SQLテキストは依存性がありません。

答えて

2

sql文は、実行時にWebアプリケーション上で.netプロファイラとして実行される "status monitor"によって収集されます。

https://docs.microsoft.com/en-us/azure/application-insights/app-insights-asp-net-dependencies

私の周り頼むよ、私はフープの多くてジャンプすることなく、非Webアプリケーションにそれをフックアップすることは容易ではないかなり確信です。

+0

@ドミトリー・マヴェーヴェと話をした後は、理論的には可能ですが、その理論は実際に試してみる価値はないでしょう。計測しようとしている非常に大規模で複雑なコンソールアプリケーションを使用していない限り、カスタムイベントやカスタムプロパティを使用して手動で自分自身を記録する方が良いでしょう。 –

+0

ありがとうございます。あなたが言っているように、私は希望の情報を手動で記録します。 – Chatumbabub

関連する問題