AWS Elastic Beanstalk的应用洞察

时间:2017-03-25 18:47:37

标签: amazon-web-services amazon-ec2 elastic-beanstalk azure-application-insights amazon-elastic-beanstalk

我试图在AWS Elastic Beanstalk中的多个实例上托管的应用程序上运行Application Insights。问题是服务器都被视为单个服务器。我认为这是因为它们都具有相同的HostName。

有谁知道我怎么做:

  • 在启动时手动设置Application Insights中的ServerName属性? 或
  • 强制AWS为每个实例提供不同的HostName吗?

1 个答案:

答案 0 :(得分:2)

如果字段是公共的,您可以使用遥测初始化程序更改设置值,或者您也可以创建自己的属性来存储正确的名称。无论哪种方式,Telemetry Initializer看起来都是一种方式:

public class MyTelemetryInitializer : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        var requestTelemetry = telemetry as RequestTelemetry;
        // Is this a TrackRequest() ?
        if (requestTelemetry == null) return;
        int code;
        bool parsed = Int32.TryParse(requestTelemetry.ResponseCode, out code);
        if (!parsed) return;
        if (code >= 400 && code < 500)
        {
            // If we set the Success property, the SDK won't change it:
            requestTelemetry.Success = true;
            // Allow us to filter these requests in the portal:
            requestTelemetry.Context.Properties["Overridden400s"] = "true";
        }
        // else leave the SDK to set the Success property      
    }

如您所见,您可以访问遥测项目的现有属性,也可以根据需要添加新属性。我希望这会有所帮助。