.NET Core 服务实现监控可观测性最佳实践

.NET Core 概述
.Net Core 是一个开源的、跨平台的高性能框架,由微软开发并维护,现由 .NET Foundation 提供支持。它用于构建现代化、可扩展的云端和本地应用程序,支持开发 Web 应用、微服务、API、物联网应用以及移动后端服务,是 .NET 生态系统中的核心开发平台。
.NET Core 的优势有以下几点:
跨平台能力:支持在 Windows、Linux 和 macOS 系统上开发和运行,打破传统 .NET Framework 的局限性,满足多样化部署需求。
高性能:基于优化的运行时和轻量级模块化设计,.NET Core 的请求处理速度显著提升,可轻松应对高并发场景,性能对标业界领先框架(如 Node.js、Spring)。
灵活的扩展性:支持依赖注入、中间件管道等模块化设计,开发者可按需组合功能(如认证、日志、缓存),快速构建轻量级或企业级应用。
现代化开发支持:原生集成云原生技术(如 Docker、Kubernetes),提供高效的微服务架构支持;兼容多种开发语言(C#、F#、VB),并与 Visual Studio、VS Code 等工具无缝协作。
.NET Core 是一个功能完备的应用开发框架,适用于追求高性能、跨平台兼容性及快速迭代的互联网应用、企业级系统、云服务和物联网等领域,是构建数字化转型解决方案的核心技术栈之一。
观测云
观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。
环境信息
系统环境:Linux(CentOS 7.9 64 位)
开发语言:.Net 6.0.425
APM 探针包:ddtrace
启动方式:Supervisor
Tips:Supervisor 是一个用于控制和管理进程的 Unix 工具,它常用于确保关键进程在后台持续运行。对于 .NET 应用,Supervisor 可以监控应用程序的启动、运行状态,并在崩溃时自动重启。通过配置文件设定,Supervisor 能处理多个 .NET 进程,保证应用的高可用性。这使得 Supervisor 成为部署和维护 .NET 应用程序的一个有力工具。
部署 DataKit
DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。
登录观测云控制台,在「集成」 - 「DataKit」选择对应安装方式,当前采用 Linux 主机部署 DataKit。

开启 ddtrace 采集器
linux 主机配置
重启 datakit
探针下载
根据版本和架构选择不同的探针:DataDog/dd-trace-dotnet ,为与操作系统(x64 或 x86)匹配的体系结构选择 MSI 安装程序。
以 CentOS 为例
添加环境变量
应用服务开启 .NET Tracer,需要设置所需的环境变量并重新启动应用程序。
当使用
supervisorctl
将 .NET 应用程序作为服务运行时,添加要为特定服务加载的所需环境变量。
在使用
supervisor
这种守护进程的启动方式时配置文件中需要修改的部分如下:
重启 .Net 应用
Tips:需要注意的是,CORECLR_PROFILER,CORECLR_PROFILER_PATH,DD_DOTNET_TRACER_HOME 这几个环境变量的值尽量加上"",不然有可能会造成 key,value 的值对应不上。
实践效果



总结
观测云通过 One Agent (DataKit)为 .NET Core 应用提供全链路可观测能力,实时追踪性能指标与日志数据,保障服务稳定性。部署时需配置环境变量、启用采集器并通过 Supervisor 管理进程,确保探针与监控链路正常通信。该方案有效识别性能瓶颈、优化应用响应,并提升云端服务的高可用性与安全风险管控能力。
评论