Steeltoe里的分布式追踪功能与Spring Cloud Sleuth一样,支持在日志中记录追踪数据,或者上传到远端的服务,比如Zipkin。

Logging

在Steeltoe中使用日志时需要引入其特有的日志包Steeltoe.Extensions.Logging.DynamicLogger。

之后还需在应用程序启动时加入日志提供器。

WebHost.CreateDefaultBuilder(args).UseStartup<Startup>().ConfigureLogging((builderContext, loggingBuilder) =>
{
loggingBuilder.AddConfiguration(builderContext.Configuration.GetSection("Logging")); // Add Steeltoe Dynamic Logging provider
loggingBuilder.AddDynamicConsole();
});

接下来,引入追踪包Steeltoe.Management.TracingCore。

然后在Startup类中加入追踪服务。

public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedTracing(Configuration); services.AddMvc();
}

最后在Action方法里添加日志锚点。

[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
private readonly ILogger _logger;
public ValuesController(ILogger<ValuesController> logger)
{
_logger = logger;
}
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
_logger.LogWarning("Hello log");
return new string[] { "value1", "value2" };
}
}

并在appsettings.json文件确认如下配置:

"Logging": {
"LogLevel": {
"Default": "Warning"
}
}

这样启动程序后,可以在输出窗口内看到两条日志,这是因为Steeltoe的日志提供器是对ASP.NET Core自身日志器的进一步封装,其在原始数据基础上增加了如Spring Cloud Sleuth中一样的额外信息。

Exporting

如果想要把追踪数据发送到Zipkin服务中,还需额外引入新的包Steeltoe.Management.ExporterCore。

并在Startup类中增加新的服务。

public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedTracing(Configuration);
services.AddZipkinExporter(Configuration); services.AddMvc();
} public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc(); app.UseTracingExporter();
}

appsettings.json文件里加上上文中Zipkin的服务地址。

"management": {
"tracing": {
"alwaysSample": true,
"egressIgnorePattern": "/api/v2/spans|/v2/apps/.*/permissions|/eureka/.*|/oauth/.*",
"exporter": {
"zipkin": {
"endpoint": "http://localhost:10000/api/v2/spans",
"validateCertificates": false
}
}
}
}

再次启动程序,首先可以看到exportable字段的值已从false变为了true。

然后,再到Zipkin服务中查看,追踪数据确实已经传入到其中。

Steeltoe之Distributed Tracing篇的更多相关文章

  1. Sentry 监控 - Distributed Tracing 分布式跟踪

    系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...

  2. Knowing how all your components work together: distributed tracing with Zipkin

    转自: http://aredko.blogspot.com/2014/02/knowing-how-all-your-components-work.html In today's post we ...

  3. Steeltoe之Circuit Breaker篇

    在分布式系统中,服务发生异常是很正常的现象.为了处理这类"例外",可以采取不同的应对策略,断路器模式即是其中一种方法.这个模式的主要特点是其可以阻断失败的级联影响,不会因为一个服务 ...

  4. Steeltoe之Service Discovery篇

    在前文一窥Spring Cloud Eureka中,已经构建了基于Eureka的服务端与客户端,可用于实现服务注册与发现功能.而借助Steeltoe的类库,可以在.NET生态系统中使用Spring C ...

  5. Steeltoe之Config客户端篇

    Steeltoe是一款开源项目,其目标是选取源自Netflix及其它公司的工具,使它们能够运用于.NET社区.它不仅可以在.NET Core上,也可以在.NET Framework 4.X以上使用.此 ...

  6. .NET Core微服务之基于Steeltoe使用Zipkin实现分布式追踪

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 =>  Steeltoe目录快速导航: 1. 基于Steeltoe使用Spring Cloud Eureka 2. 基于Steelt ...

  7. OneAPM大讲堂 | Metrics, Tracing 和 Logging 的关系

    [编者按]这是在 OpenTracing 和分布式追踪领域内广受欢迎的一片博客文章.在构建监控系统时,大家往往在这几个名词和方式之间纠结. 通过这篇文章,作者很好的阐述了分布式追踪.统计指标与日志之间 ...

  8. Scalable, Distributed Systems Using Akka, Spring Boot, DDD, and Java--转

    原文地址:https://dzone.com/articles/scalable-distributed-systems-using-akka-spring-boot-ddd-and-java Whe ...

  9. Build Telemetry for Distributed Services之OpenCensus:C#

    OpenCensus Easily collect telemetry like metrics and distributed traces from your services OpenCensu ...

随机推荐

  1. ImCash:第一个集多功能于一身的数字资产平台

    Web2.0时代,去中心化开始被社会各界人士所知晓,随着网络时代的不断发展,去中心化概念慢慢得到了社会各界的追捧.行业巨头控制.算法运行干扰.大数据的不良利用.跨款平台支付的不便都在一定程度上对用户的 ...

  2. [enum]enum的用法

    ENUM概况 enum枚举类型是C/C++中的一种数据类型,与struct和class一样是用户自定义的类型,其特点在于enum类型的变量取值是有限的,是可以一一列举出来的. ENUM定义 C++ e ...

  3. Centos 7安装python3(PY3.6)

    # 安装 sudo yum install centos-release-scl sudo yum install rh-python36 #开启 scl enable rh-python36 bas ...

  4. PPT vba从Execl 拷贝图表

    在PPT 需要引用Execl的COM组件 Dim wkb As Workbook Sub Change() Set wkb = Workbooks.Open("D:\D2_月报基础数据.xl ...

  5. [jzoj]3468.【NOIP2013模拟联考7】OSU!(osu)

    Link https://jzoj.net/senior/#main/show/3468 Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: ...

  6. tomcat的下载与安装

    (1)下载Tomcat 官网地址:http://tomcat.apache.org/whichversion.html (2)安装Tomcat Tomcat有安装版和解压版(绿色版) 安装版以.exe ...

  7. 小程序页面跳转传参参数值为url时参数时 会出现丢失

    当参数的值为url的时候,  ?号   _  下划线   等等 都会被 截取掉,看不到,  这样在 另一个页面 options中  截取的url就不完全 let url="http://ba ...

  8. HBuilder git使用-分工合作

    1.初始项目的创建 创建好项目,在项目名上右键,Team->共享 完成后,就实现了本地仓库的建立,另外你要注意现在创建的项目所有文件变成了红色,Git Repositories视图列出了相应的本 ...

  9. libguestfs手册(2):guestfish command

    添加一个drive:guestfs_add_drive_opts add-drive filename [readonly:true|false] [format:..] [iface:..] [na ...

  10. 解决 spring-cloud-starter-zipkin 启动错误

    应用场景:Spring Boot 服务添加 Zipkin 依赖,进行服务调用的数据采集,然后进行 Zipkin-Server 服务调用追踪显示. 示例pom.xml配置: <parent> ...