代码之家  ›  专栏  ›  技术社区  ›  dododo

Azure应用程序洞察力。自定义属性长度限制

  •  1
  • dododo  · 技术社区  · 6 年前

    我在用 Azure App Insight 作为日志记录工具,通过以下代码存储日志数据:

        private void SendTrace(LoggingEvent loggingEvent)
        {
            loggingEvent.GetProperties();
            string message = "TestMessage";
    
            var trace = new TraceTelemetry(message)
            {
                SeverityLevel = SeverityLevel.Information
            };
    
            trace.Properties.Add("TetstKey", "TestValue");
            var telemetryClient = new TelemetryClient();
            telemetryClient.Context.InstrumentationKey = this.InstrumentationKey;
            telemetryClient.Track(trace);
        }
    

    一切正常。我看到登录的记录 App insight 以及 App insight analytics trace 表)。我的 自定义属性 写在特殊的应用程序洞察行部分- customDimensions . 例如,上面的代码将添加带有 “测试密钥” 键和“ 测试值” 值转换为 自定义维度 第节。

    但是当我试图写一些大文本(例如 JSON 超过15K个字母的文档)我仍然可以这样做,没有任何例外,但可写文本将在文档长度一定后被切断。因此,自定义属性值 自定义维度 节也将被裁剪,并且只包含文档的第一部分。 据我所知,最大文本长度有限制,允许在app insight自定义属性中写入。

    有人知道我该怎么做吗?

    1 回复  |  直到 6 年前
        1
  •  4
  •   cijothomas    6 年前

    这个 message 允许的最高限制为32768。对于属性集合中的项,值的最大限制为8192。

    因此,您可以尝试以下选项之一:

    1. 通过将大文本放在那里,最大限度地使用消息字段。
    2. 将数据拆分为多个,并分别添加到属性集合。

      如:

      trace.properties.add(“key_part1”,“bigtext1_up 8192”);

      trace.properties.add(“key_part2”,“bigtext2_up 8192”);

    参考文献: https://github.com/Microsoft/ApplicationInsights-Home/blob/master/EndpointSpecs/Schemas/Docs/MessageData.md

    推荐文章