向无状态服务结构应用程序添加应用程序见解

时间:2018-12-11 06:03:23

标签: .net-core azure-service-fabric azure-application-insights

我正在尝试遵循this documentation来开始在部署到服务结构的.net核心应用程序中使用应用程序见解。

我的代码非常简单

public FailedAuthorise(StatelessServiceContext context, IConfigManager config)
        : base(context)
{
    _worker = new Worker<PaymentFailedAuthorise>(config, FailedAuthoriseHandlerFactory.Create, "FailedAuthorise", "FailedAuthoriseError");
}

    protected override async Task RunAsync(CancellationToken cancellationToken)
{
    await _worker.RunAsync(cancellationToken);
}

成为工作人员只是从某些队列读取并处理消息的通用类

但是,如果我要遵循该文档,则需要安装一些nuget软件包(实际上这给我带来了查找和/或安装问题,例如,使用Microsoft.ApplicationInsights.ServiceFabric无法访问; < / em>,或者将需要在管道上修改配置文件时更改检测密钥),并开始使用解决方案中不需要的“托管”类。

将应用程序见解添加到过去充当云服务中的辅助角色而不需要托管位的方法不是简单的方法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您只需添加this nuget package并创建自己的自定义遥测,如下所示:

public class MyService
{
    private readonly TelemetryClient telemetryClient;

    public MyService()
    {
        telemetryClient = new TelemetryClient(configuration);
        telemetryClient.Context.InstrumentationKey = "[Your Key Here]";
    }

    public FailedAuthorise(StatelessServiceContext context, IConfigManager config)
            : base(context)
    {
        _worker = new Worker<PaymentFailedAuthorise>(config, FailedAuthoriseHandlerFactory.Create, "FailedAuthorise", "FailedAuthoriseError");
    }

    protected override async Task RunAsync(CancellationToken cancellationToken)
    {
        telemetryClient.TrackEvent("Worker started");
        await _worker.RunAsync(cancellationToken);
    }
}

您可以跟踪几件事,例如exceptions, traces, events, metrics and requests,但是如果您没有使用Asp.Net Core,则必须手动发送这些事件,而不是使用一些中间件将遥测发送给App Insigths。

如果您的服务调用了其他服务,则可以添加this package以自动跟踪与其他服务的通信。