引入Jaeger——使用
生活随笔
收集整理的這篇文章主要介紹了
引入Jaeger——使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
上一篇定義了兩種使用Jaeger的方式:中間件和action過濾器,下面這個例子定義了兩個服務 WebAPI01,請求WebAPI02,采用的是中間件的請求方式。
引入JaegerSharp包(或發(fā)布到自己的Nuget庫里引用)
WebAPI01的Startup
using JaegerSharp; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.OpenApi.Models; using System;namespace WebAPI01 {public class Startup{public Startup(IConfiguration configuration){Configuration = configuration;}public?IConfiguration?Configuration?{?get;?}public void ConfigureServices(IServiceCollection services){//命名客戶端services.AddHttpClient("WebAPI02", client =>{client.BaseAddress = new Uri(Configuration.GetSection("DownStreamUrl").Value);});services.AddControllers();services.AddSwaggerGen(c =>{c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebAPI01", Version = "v1" });});//添加OpenTracingservices.AddOpenTracing();//注入Jaegerif (Convert.ToBoolean(Configuration.GetSection("OpenTracing:Enable")?.Value)){var agentHost = Configuration.GetSection("OpenTracing:Agent").GetValue<string>("Host");var agentPort = Configuration.GetSection("OpenTracing:Agent").GetValue<int>("Port");var agentMaxPacketSize = Configuration.GetSection("OpenTracing:Agent").GetValue<int>("MaxPacketSize");services.AddJaegerSharp(agentHost, agentPort, agentMaxPacketSize);}}public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();app.UseSwagger();app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebAPI01 v1"));}app.UseHttpsRedirection();if (Convert.ToBoolean(Configuration.GetSection("OpenTracing:Enable")?.Value)){app.UseJaegerSharp();}app.UseRouting();app.UseAuthorization();app.UseEndpoints(endpoints =>{endpoints.MapControllers();});}} }WebAPI01的appsettings.json
調用下游服務 WebAPI02,下游服務 WebAPI02與WebAPI01類似,需要引入JaegerSharp,添加配置文件,指向同一個Jaeger的host,如果WebAPI02有下游API調用,繼續(xù)配置調用。
下載Jaeger(https://www.jaegertracing.io/download/),我用的是1.21.0的Windows版本,因為我的開發(fā)環(huán)境是Windows,運行jaeger-all-in-one.exe
,再跑自己的應用,訪問完鏈路后,打開localhost:16686,查看結果如下:
查詢WebAPI01結果
點擊WebAPI01:HTTP GET?7151a0a結果如下,鏈路清晰
總結
以上是生活随笔為你收集整理的引入Jaeger——使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玩转git-flow工作流-分支解析
- 下一篇: 如何在 ASP.NET Core 中使用