星尘分布式全链路监控看起来功能挺强大的,但是网上都是官方的介绍,直接调用的demo相对比较少,期间踩坑比较多,希望对后面的人有所帮助
1.https://github.com/NewLifeX/Stardust 下载官网的代码进行编译,在Bin里面找到需要的3个项目,Agent,Server,Web
将三个项目拷贝到你要搭建的云服务器上,然后运行Server,等Server运行成功后运行Agent(代理)
运行失败可以参考 https://www.yuque.com/smartstone/blood/staragent_install
将Web搭建起来,按照提示的方式正常注册进去
经过这几步骤后星尘系统是搭建成功了,剩下的是要在项目中集成进去,直接上代码
ConfigureServices(IServiceCollection services) 中注入星尘的实例
#region 星尘分布式监控引用
var set = Stardust.Setting.Current;
set.Server = "http://IPXXXX:6600";
if (!set.Server.IsNullOrEmpty())
{
// APM跟踪器
var tracer = new StarTracer(set.Server) { Log = XTrace.Log };
tracer.AppName = "CH.Project_Name显示";
tracer.AppId = "CH.Project_Appid";
tracer.AppSecret = "XXXXXXXXXXXXXXXXXXXXX";
DefaultTracer.Instance = tracer;
ApiHelper.Tracer = tracer;
DAL.GlobalTracer = tracer;
TracerMiddleware.Tracer = tracer;
services.AddSingleton<ITracer>(tracer);
}
services.AddControllersWithViews();
// 引入魔方
services.AddCube();
#endregion
Configure(IApplicationBuilder app, IWebHostEnvironment env)中需要引用
app.UseMiddleware<TracerMiddleware>();
app.UseCube(env);//放比较靠后一点
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}"); //相当重要
});
经过这样改造后等几分钟看星尘的管理端可以看见新加的项目的接口信息
结束语:目前这个分布式链路监控还在摸索阶段,发现有好玩的再一起分享