Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Application Insights precisa rastrear solicitações para seu aplicativo para fornecer perfis para seu aplicativo na página Desempenho no portal do Azure. Para aplicativos criados em estruturas já instrumentadas (como ASP.NET e ASP.NET Core), o Application Insights pode rastrear solicitações automaticamente.
Para outros aplicativos (como APIs sem estado do Azure Service Fabric), você precisa controlar solicitações com código que informa ao Application Insights onde suas solicitações começam e terminam. A telemetria de solicitações é então enviada para o Application Insights, que você pode exibir na página Desempenho . Os perfis são coletados para essas solicitações.
Para controlar manualmente as solicitações:
No início do tempo de vida do aplicativo, adicione o seguinte código:
using Microsoft.ApplicationInsights.Extensibility; ... // Replace with your own Application Insights connection string. TelemetryConfiguration.Active.InstrumentationKey = "00000000-0000-0000-0000-000000000000";
Para obter mais informações sobre essa configuração de cadeia de conexão global, consulte Usar o Service Fabric com o Application Insights.
Para qualquer parte do código que você deseja instrumentar, adicione uma
StartOperation<RequestTelemetry>
instrução using em torno dele, conforme mostrado no exemplo a seguir:using Microsoft.ApplicationInsights; using Microsoft.ApplicationInsights.DataContracts; ... var client = new TelemetryClient(); ... using (var operation = client.StartOperation<RequestTelemetry>("Insert_Your_Custom_Event_Unique_Name")) { // ... Code I want to profile. }
Não há suporte para chamadas
StartOperation<RequestTelemetry>
dentro de outroStartOperation<RequestTelemetry>
escopo. Em vez disso, você pode usarStartOperation<DependencyTelemetry>
no escopo aninhado. Por exemplo:using (var getDetailsOperation = client.Operation<RequestTelemetry>("GetProductDetails")) { try { ProductDetail details = new ProductDetail() { Id = productId }; getDetailsOperation.Telemetry.Properties["ProductId"] = productId.ToString(); // By using DependencyTelemetry, 'GetProductPrice' is correctly linked as part of the 'GetProductDetails' request. using (var getPriceOperation = client.StartOperation<DependencyTelemetry>("GetProductPrice")) { double price = await _priceDataBase.GetAsync(productId); if (IsTooCheap(price)) { throw new PriceTooLowException(productId); } details.Price = price; } // Similarly, note how 'GetProductReviews' doesn't establish another RequestTelemetry. using (var getReviewsOperation = client.StartOperation<DependencyTelemetry>("GetProductReviews")) { details.Reviews = await _reviewDataBase.GetAsync(productId); } getDetailsOperation.Telemetry.Success = true; return details; } catch(Exception ex) { getDetailsOperation.Telemetry.Success = false; // This exception gets linked to the 'GetProductDetails' request telemetry. client.TrackException(ex); throw; } }
Nota
A 31 de março de 2025, o suporte para a ingestão de chaves de instrumentação cessará. A ingestão de chaves de instrumentação continuará a funcionar, mas não forneceremos mais atualizações ou suporte para o recurso. Transição para cadeias de conexão para aproveitar os novos recursos.
Próximos passos
Solucione problemas do Application Insights Profiler para .NET.