可观测性的概念
内容节选自:https://docs.dapr.io/concepts/observability-concept/
How to monitor applications through tracing, metrics, logs and health
如何通过跟踪、指标、日志和健康状况来监控应用程序
可观测性是控制理论中的一个术语。可观测性意味着您可以通过观察系统外部来回答系统内部发生了什么问题,而无需发布新的代码来回答新的问题。在生产环境和服务中,可观测性对于调试、运维和监控Dapr系统服务、组件和用户应用至关重要。
可观测性能力使用户能够监控Dapr系统服务、它们与用户应用程序的交互,并了解这些被监控的服务的行为。可观测性的功能分为以下几个方面。
分布式跟踪
分布式跟踪用于描述和监控Dapr系统服务和用户应用程序。分布式跟踪有助于确定故障发生的位置和导致性能不佳的原因。分布式跟踪特别适合于调试和监控分布式软件架构,如微服务。
您可以使用分布式跟踪来帮助调试和优化应用程序代码。分布式跟踪包含Dapr运行时、Dapr系统服务和用户应用程序之间跨越进程、节点、网络和安全边界的跟踪span。它提供了对服务调用(调用流)和服务依赖的详细了解。
Dapr使用W3C追踪上下文进行分布式追踪。
一般建议在生产中运行Dapr时开启跟踪。
Open Telemetry
Dapr与OpenTelemetry集成,用于跟踪、度量和日志。通过OpenTelemetry,您可以根据您的环境配置各种导出器,用于跟踪和度量,无论它是在云端还是在内部运行。
Metrics
度量是指随着时间的推移收集和存储的一系列测量值和计数。Dapr指标可以监控和了解Dapr系统服务和用户应用的行为。
例如,Dapr sidecar和用户应用之间的服务指标显示调用延迟、流量故障、请求的错误率等。
Dapr系统服务指标显示sidecar注入故障、系统服务的健康度,包括CPU使用情况、做出的actor放置次数等。
Logs
日志是事件发生的记录,可以用来判断故障或其他状态。
日志事件包含Dapr系统服务产生的警告、错误、信息和调试消息。每个日志事件包括元数据,如消息类型、主机名、组件名、App ID、ip地址等。
Health
Dapr为托管平台提供了一种使用HTTP端点确定其健康状况的方法。有了这个端点,Dapr进程或sidecar可以被探测到,以确定它的准备度(readiness)和活力(liveness),并采取相应的行动。