C#作业的弹性apm

时间:2020-04-06 17:34:29

标签: c# asp.net-core elastic-apm

我将ElasticAPM添加到我在AspNetCore 3.1上的启动中

app.UseAllElasticApm(Configuration);

在我的项目中,其余api服务日志作为kibana-apm的事务选项卡。但是我的后台服务并没有由apm代理记录,并且只有“指标”标签对我有用。

1 个答案:

答案 0 :(得分:1)

当前没有开箱即用地捕获后台服务。

您可以做的是使用Public Agent API,并通过一点点附加代码就可以将这些捕获为事务。

在后台服务中是这样的:

var transaction = Elastic.Apm.Agent
        .Tracer.StartTransaction("MyTransaction", ApiConstants.TypeRequest);
try
{
    //background service code that is captured as a transaction
}
catch (Exception e)
{
    transaction?.CaptureException(e);
    throw;
}
finally
{
    transaction?.End();
}