azure - 检索 Azure 诊断日志

标签 azure azure-diagnostics

我们在 Azure 中运行 5 个部署中的大约 10 个实例,并记录到 Azure 诊断 (WADLogsTable)。 我需要每隔几分钟检索一次这些日志,以便通过第三方工具在本地进行分析。我已经有简单的版本,它从表中读取日志,保存最后一个分区和行键,并下次运行查询 PartitionKey >= SavedPartitionKey。问题是这样并不能检索到所有日志: WAD 使用日志缓冲,每 5 分钟(每个实例)一次将日志批量存储在表中。 记录事件的 RowKey 以部署 id(即 guid)开头。

  1. 在时间 00:05:30 DeploymentId=999 的 InstanceA... 放置最近 5 分钟的日志 PK RK 消息 00:01:00 999 条消息1 00:01:00 999 条消息2 00:02:00 999 条消息3 00:02:00 999 条消息4 00:05:00 999 消息5
  2. 在时间 00:06:00 启动传输脚本,获取所有日志,保存 LastPK=00:05:00
  3. 在时间 00:06:30 DeploymentId=111 的 InstanceB...放置最近 5 分钟的日志 00:02:00 111 消息6 00:03:00 111 消息7 00:05:00 111 消息8 00:06:00 111 消息9
  4. 在时间 00:07:00 启动传输脚本,获取 PK>=LastPK=00:05:00 的日志,并且实际上仅检索 msg8 和 msg9(msg6 和 msg7 丢失)。

我想到的解决方案是每次TransferScript检索最近6分钟的所有日志(wad同步5分钟+缓冲区1分钟),但这会大大增加传输的数据量(比如5次)+需要以某种方式过滤掉已经检索到的日志,这可能会出现问题。另外我想过添加 Timestamp>LastSeenTimestamp 但我不确定它是否解决了数据量和重复的问题以及这样我是否不会丢失消息。有任何想法吗? 谢谢

最佳答案

向第三方工具的传输是否需要实时或“尽快”?是否只能传输 5 分钟或更早的数据,而不传输小于 5 分钟的数据?这将确保您只传输已完成的分区。

关于azure - 检索 Azure 诊断日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782974/

相关文章:

java - Azure sdk物联网存储无需帐户 key 代理中的相同环境

Azure Devops 构建代理 - 一个代理池是否可以使用不同的 PAT 构建多个代理?

caching - Azure 缓存 - 升级到 SDK 2.1 和缓存 2.1 后失败

azure - 如何使用 Azure 资源管理器选择最新的 Ubuntu 14.04 LTS 镜像?

c# - 当异常消息包含不可打印字符时,TraceSource.TraceEvent() 无法记录

azure - 是否可以在 Elasticsearch 中记录 Azure 云服务性能计数器?

azure - 启动 Hive 元存储时无法创建 ServerSocket

azure - Windows Azure - "The configuration file is missing a diagnostic connection string for one or more roles"

Azure 角色(WCF 服务)不记录跟踪信息

azure - 缓存诊断建议使用 20GB 的本地存储(!)。为什么?