【Azure Function & Application Insights】调用Function上传和下载文件,有时候遇见大于1MB的文件的日志没有记录在Application Insights中

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【Azure Function & Application Insights】调用Function上传和下载文件,有时候遇见大于1MB的文件的日志没有记录在Application Insights中

问题描述

在Function App中配置了无代码模式的Application Insights,但有时候发现,超过1MB的文件上传/下载操作成功。但是在Application Insights中,却没有发现请求日志?这是一种什么情况呢?

 

问题解答

Application Insights 是具有采样功能的,当传入执行的速率超过指定的阈值时,Application Insights 开始随机忽略某些传入执行。

配置采样

Application Insights 具有采样功能,可以防止在峰值负载时为已完成的执行生成过多的遥测数据。

当传入执行的速率超过指定的阈值时,Application Insights 开始随机忽略某些传入执行。

每秒执行的最大次数的默认设置为 20。

可以在 host.json 中配置采样。 下面是一个示例:

{
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond" : 20,
        "excludedTypes": "Request;Exception"
      }
    }
  }
}

根据采样率推断并且基于当时执行请求操作数每秒>20次,所以生成的日志由于采样功能会忽略部分日志的采集。如果需要全部采集Function App的日志,可以把采样率设置为100%(initialSamplingPercentage)。

如:

{
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "initialSamplingPercentage" : 100.0,
        "excludedTypes": "Request;Exception"
      }
    }
  }
}

参数介绍:

  • maxTelemetryItemsPerSecond:  默认值20,表示每个服务器主机上每秒记录的遥测项的目标数目。 如果应用在多个主机上运行,请将此值降低至总体目标流量率的范围内。
  • initialSamplingPercentage: 默认值100.0,表示在采样过程开始时应用的初始采样百分比,以动态改变百分比。 不要在调试时减小值,它会导致日志收集不全面。

 

参考资料

Azure Functions 2.x 的 host.json 参数 :  https://learn.microsoft.com/zh-cn/azure/azure-functions/functions-host-json#applicationinsightssamplingsettings

Azure Function 采样率配置介绍:https://learn.microsoft.com/zh-cn/azure/azure-functions/configure-monitoring?tabs=v2#configure-sampling

 

 

[END]

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4天前
|
消息中间件 存储 监控
Kafka的logs目录下的文件都是什么日志?
Kafka的logs目录下的文件都是什么日志?
18 11
|
19天前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
|
20天前
【Azure Function】Azure Function中的Timer Trigger无法自动触发问题
【Azure Function】Azure Function中的Timer Trigger无法自动触发问题
|
20天前
【Azure Function & Application Insights】在Azure Function的日志中,发现DrainMode mode enabled Traces。它是什么意思呢?
【Azure Function & Application Insights】在Azure Function的日志中,发现DrainMode mode enabled Traces。它是什么意思呢?
|
20天前
|
Python
【Azure Function】发布 Python Function 到 Azure 成功,但是无法显示Function列表
【Azure Function】发布 Python Function 到 Azure 成功,但是无法显示Function列表
|
20天前
|
C#
【Azure Function】Function App启动时出现 Failed to open local port 4001 错误,这是什么情况呢?
【Azure Function】Function App启动时出现 Failed to open local port 4001 错误,这是什么情况呢?
|
20天前
|
C# C++
【Azure Function】在VS Code中创建Function项目遇见 No .NET worker runtimes found
【Azure Function】在VS Code中创建Function项目遇见 No .NET worker runtimes found
|
20天前
|
Kubernetes Ubuntu Windows
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
|
2天前
|
Java
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。
|
12天前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
49 9