Azure Monitor Java 日志摄取
帮助 Java 应用通过 DCR 将自定义日志发送到 Azure Monitor。
文档说明了 DCE、DCR、工作区和凭据环境变量,并展示了 DefaultAzureCredential 与托管身份用法;但上传日志会产生明确的外部数据流,未说明敏感日志脱敏、最小 RBAC、用户确认、重试幂等性或回滚,因此未达到高分。
覆盖同步、异步、并发和部分失败处理,且提供 HTTP 状态码诊断;但仅为静态代码示例,没有针对关键路径的提交测试,依赖版本示例不一致(1.2.11、1.2.14、BOM 1.2.29),边界输入、批量限制和重试策略也不完整,故受静态上限限制并扣分。
触发词、Java SDK 范围、先决条件和基本使用场景较明确;但未清楚定义不适用场景、日志 schema/大小限制和认证选择边界,未提供中文支持证据,也未证明 Azure 相关服务在中国大陆网络环境中的可达性,因此扣分。
结构清晰,包含安装、先决条件、环境变量、同步/异步示例、错误处理、最佳实践和 references/examples.md;但版本信息不统一,缺少变更日志、明确维护责任、更新流程、FAQ、安装后验证和已知限制,许可证虽有 MIT 元数据及仓库 LICENSE,仍非满分。
能够直接指导常见的 Java 日志上传、并发和部分失败处理,核心输出是可改写的代码示例;但示例未完整覆盖生产级 schema 校验、批处理限制、重试/去重、隐私治理和部署配置,且部分示例可疑或需人工校验,因此仅接近静态评估可给的中等分数。
技能提供 Maven、GitHub、产品文档和故障排除引用,并有仓库 CI 与测试基础设施证据;但这些材料未证明该技能路径的关键示例已被实际执行,缺少针对本技能的提交测试或第三方执行结果,故仅给有限可验证性分数。
- 上传日志可能包含敏感信息;在生产使用前应确认数据分类、脱敏、DCR schema、网络边界和最小 RBAC 权限。
- 主技能与参考文件中的 SDK/BOM 版本不一致,应以锁定的官方版本和实际 API 签名复核示例。
- 文档未证明中国大陆网络可达性、服务区域可用性或私网配置;相关部署需单独验证。
- 异步示例使用 subscribe,未说明生命周期管理、背压、重试、重复上传和失败日志持久化策略。
它能做什么 & 适用场景
该技能面向使用 Azure Monitor Ingestion SDK for Java 的开发者。它说明如何配置数据收集终结点(DCE)、数据收集规则(DCR)、Log Analytics 工作区和目标表,并创建同步或异步日志客户端。内容覆盖自定义日志上传、并发控制、部分失败处理、身份验证和 HTTP 错误排查。适合需要将应用自定义日志写入 Azure Monitor 的 Java 项目,但前提是相关 Azure 资源和权限已经准备好。
提供 Maven 依赖配置、Azure 凭据和 LogsIngestionClient/LogsIngestionAsyncClient 创建示例;指导调用 upload 上传日志,使用 maxConcurrency 批量并发上传,并通过错误回调处理失败日志;说明日志模型的 JSON getter 要求、DCR 字段匹配和 TimeGenerated 时间戳要求;还给出 403、404 等 HTTP 错误的排查方向,并引用 azure-monitor-query 技能查询上传后的日志。
- 负责 Java 后端可观测性的开发者,需要把自定义应用事件写入 Log Analytics 工作区。
- 已经配置 DCE 和 DCR 的团队,需要批量上传符合 DCR schema 的结构化日志。
- 高吞吐日志场景的开发者,需要使用异步客户端或 maxConcurrency 提升上传效率。
- 需要保留部分成功结果的工程师,希望记录上传失败的日志条目而不是直接中止全部上传。
优缺点一览
- 覆盖同步和基于 Reactor 的异步客户端。
- 包含并发上传、部分失败回调和常见 HTTP 错误处理示例。
- 明确列出 DCE、DCR、目标 stream 和日志字段要求。
- 依赖坐标、环境变量和官方参考链接较完整。
- 不能替代 DCE、DCR、工作区和权限的实际配置。
- SKILL.md 未提供独立的测试套件或 Java 专属验收场景。
- 示例依赖版本固定为 1.2.11,来源未说明其是否为最新版本。
- 上传后的查询仅引用另一个技能,未在本技能中详细介绍查询客户端。
如何安装
安装整个集合:运行 npx skills add microsoft/skills,在向导中选择需要的技能。README 说明技能会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/;该来源未提供此 Java 技能的单独安装命令。项目依赖可直接添加 com.azure:azure-monitor-ingestion:1.2.11,或通过 Azure SDK BOM 管理版本。
如何使用
在已安装该技能的编码 Agent 中使用触发语句,例如“Show me how to use LogsIngestionClient java”或“upload custom logs to Azure Monitor with DCR java”。使用前准备 DCE、DCR、Log Analytics workspace 和目标表,并设置 DATA_COLLECTION_ENDPOINT、DATA_COLLECTION_RULE_ID、STREAM_NAME;若生产环境使用 DefaultAzureCredential,还需设置 AZURE_TOKEN_CREDENTIALS=prod。