Splunk AppDynamics

.NET Core async transaction: Exit Calls / Threads column empty in Function Trace

adhi
New Member

Hi Team,

I am testing a simple ASP.NET Core async application with AppDynamics .NET Agent.

The agent is successfully detecting:
- Business Transactions
- HTTP Exit Calls
- Database Calls
- Service Topology
- Async timings

I can see the transaction flow map correctly between ServiceA and ServiceB, and database calls are also visible.

However, in the Transaction Snapshot -> Call Graph / Function Trace view, the “Exit Calls / Threads” column is empty for async execution.

Application Flow:
1. ASP.NET Core endpoint receives request
2. Async HTTP call using HttpClient
3. Async SQLite DB operations
4. Response returned successfully

Sample Code:

```csharp
using Microsoft.AspNetCore.Builder;
using Microsoft.Data.Sqlite;
using Microsoft.Extensions.Hosting;
using System.Net.Http;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

string dbPath = "Data Source=test.db";

using (var conn = new SqliteConnection(dbPath))
{
conn.Open();

var cmd = conn.CreateCommand();
cmd.CommandText =
"CREATE TABLE IF NOT EXISTS Test (Id INTEGER PRIMARY KEY, Name TEXT)";

cmd.ExecuteNonQuery();
}

app.MapGet("/call", async () =>
{
var httpClient = new HttpClient();

var response =
await httpClient.GetStringAsync("http://localhost:5002/api/hello");

using var conn = new SqliteConnection(dbPath);

await conn.OpenAsync();

var insertCmd = conn.CreateCommand();
insertCmd.CommandText =
"INSERT INTO Test (Name) VALUES ('APM Test')";

await insertCmd.ExecuteNonQueryAsync();

var selectCmd = conn.CreateCommand();
selectCmd.CommandText = "SELECT COUNT(*) FROM Test";

var count =
(long)await selectCmd.ExecuteScalarAsync();

return new
{
message = "Service A response",
serviceB = response,
dbCount = count
};
});

app.Run();

adhi_0-1778485267643.png

 

adhi_1-1778485295825.png

Questions:

  1. Is this expected behavior for async/await execution in .NET Core?
  2. Does AppDynamics correlate async continuations differently from thread-based execution?
  3. Is there any configuration needed to populate the Exit Calls / Threads column for async transactions?
  4. Does this work differently for synchronous requests?

I have attached screenshots of:

  • Transaction Flow Map
  • Function Trace / Call Graph

Any clarification would be helpful.

Thanks.

Labels (1)
Tags (2)
0 Karma
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Splunk Community Badges!

  Hey everyone! Ready to earn some serious bragging rights in the community? Along with our existing badges ...

How to find the worst searches in your Splunk environment and how to fix them

Everyone knows Splunk is a powerful platform for running searches and doing data analytics. Your ...

Share Your Feedback: On Admin Config Service (ACS)!

Help Us Build a Better Admin Config Service Experience (ACS)   We Want Your Feedback on Admin Config Service ...