SkyWalking 是一个开源的 APM(应用性能管理)工具,支持分布式系统的服务、容器和云原生架构。SkyAPM 是 SkyWalking 的一个 .NET 客户端库,用于监控和跟踪 .NET 应用程序。
以下是如何将 SkyAPM 集成到你的 ASP.NET Core Web API 项目中:
1. 设置 SkyWalking 服务器
首先,需要搭建 SkyWalking 的后端服务器。可以通过 Docker 快速部署:
docker pull apache/skywalking-oap-server
docker pull apache/skywalking-ui
docker network create skywalking
docker run --name oap --network skywalking -d -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=your_es_host:port -p 12800:12800 -p 11800:11800 apache/skywalking-oap-server
docker run --name ui --network skywalking -d -p 8080:8080 apache/skywalking-ui
在浏览器中访问 http://localhost:8080
可以看到 SkyWalking 的 UI。
2. 安装 SkyAPM NuGet 包
在你的 ASP.NET Core 项目中安装 SkyAPM 的 NuGet 包:
dotnet add package SkyAPM.Agent.AspNetCore
3. 配置 SkyAPM
在 Program.cs
中配置 SkyAPM:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureServices(services =>
{
services.AddSkyAPM(); // 添加 SkyAPM
});
}
在 appsettings.json
中添加 SkyAPM 的配置:
{
"SkyWalking": {
"ServiceName": "YourServiceName",
"Namespace": "YourNamespace",
"Transport": {
"Interval": 3000,
"PendingSegmentLimit": 30000,
"PendingSegmentTimeout": 1000,
"Protocols": "gRPC",
"gRPC": {
"Servers": "localhost:11800", // SkyWalking OAP server 地址
"Timeout": 10000
}
}
}
}
4. 配置环境变量(可选)
你也可以通过环境变量来配置 SkyAPM。例如,在 launchSettings.json
中添加环境变量:
{
"profiles": {
"YourProjectName": {
"commandName": "Project",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"SKYWALKING__SERVICENAME": "YourServiceName",
"SKYWALKING__GRPC__SERVERS": "localhost:11800"
}
}
}
}
5. 启动应用并查看结果
启动你的 ASP.NET Core 应用程序,它将自动将性能数据发送到 SkyWalking 后端。你可以在 SkyWalking UI 中查看监控和追踪数据。
通过上述步骤,你可以将 SkyAPM 集成到你的 ASP.NET Core Web API 项目中,并利用 SkyWalking 强大的监控和追踪功能,提升应用程序的性能和可观测性。