Back to Stream
tech
Log: 1/4/2026
按照垂直结构来划分微服务架构的话大概分为三层:
- 基础设施层 infrastructur layer :server、container、networking
- 应用层:代码和数据库
- 监测和管理层: 用于观测前两层的
datadog 就是这样一个属于监测和管理的工具。 如何发挥作用的?
- 和基础设施层:Datadog 会安装一个“agent”在 Hosts (EC2) 或者 Nodes (Kubernetes)上来监测 CPU, Memory, and Disk usage
- 和应用层: Datadog 用注入到代码中的 APM (Application Performance Monitoring) libraries 来监测, 主要负责 Distributed Tracing. 所以一个大概的流程是发起一个请求 -> datadog 拦截并开始记录 -> 请求继续 -> datadog 记录下 span 的运行时间。 对于 java 的代码,这个 apm 是如何注入的?Java Agent (-javaagent flag)。JVM 允许 Datadog Agent 查看所有加载到内存的 class 文件。
Datadog 是如何实现日志和 metric 的监控的?
- 对于日志,主动读取 application 写的日志文件/var/log/app.log
- 对于 metric, Datadog Agent opens a listening port (usually UDP 8125) on the server,应用主动向这个端口推送 metric