由于现代技术环境变得更加分布式和复杂,有效地管理其性能也变得更加挑战。了解您的服务和应用程序的集体行为要求您以标准化方式介绍所有框架和库。

输入OpenTeLemetry.- 由此赞助的开源项目云本机计算基础(CNCF)这为服务检测提供了统一的标准。通过合并OpenTracing和OpenCensus,OpenTeLemetry.提供一套单一的API和库,标准化您如何将遥测数据进行标准化和将遥测数据传输到您选择的不同之背景,例如新遗物。

今天新的遗物很高兴地宣布可用性我们的OpenteLemetry产品。现在,当您摄取开源数据时遥测数据平台和使用完整的可观测性为了快速进入问题的根本原因,您可以优化性能并了解您的全部遗产中的应用程序和服务的复杂交互。

轻松摄取OpenTeMetry数据

新的遗物的OpenTeMetry产品提供了多种方式来摄取数据:

  1. OpenTelemetry收集器:OpenTeLemetry Collector提供供应商 - 无话用的实现,了解如何接收,过程和导出遥测数据。由于收集器可以以各种格式接收和导出数据,因此在您已经录取的代码时启动是一种很好的方法。启用新的遗物出口商.在OpenTelemetry收集器中,您可以将遥测数据发送到New Relic,这是将OpenTelemetry数据摄入到New Relic的首选方法。
  2. 语言特定出口商:OpenTelemetry收集器收集和路由数据,但您还需要一些正在处理的东西来检测您的服务。OpenTelemetry项目有许多特定于语言的sdk和用于检测服务的检测库。您可以将您的遥测数据发送到收集器或直接使用New Relic语言特定的出口商。我们目前为他们提供(1.0),Java, 和
  3. Java OpenTeleMetry Integration Bundle:这是开始使用OpenTelemetry和Java的最简单方法,因为它包含了Java SDK、Java自动检测代理和New Relic导出器。

用新的遗物OpenTeleMetry UI快速可视化和分析数据

通过全堆叠可观察性的OpenTeLemetry APM功能,您可以在上下文中可视化整个堆栈的性能数据,从而更快地转到根本原因,为您的应用提供最佳性能以及为您的客户提供更好的数字体验。

让我们走过你如何使用新的遗物收集器出口商和OpenTelemetry UI收集,可视化和分析C#cartservice这是MicroServices演示应用程序

要介绍应用程序,请将以下包添加到其中:

  • NewRelic.OpenTelemetry
  • OpenTelemetry.Extensions.Hosting
  • OpenTelemetry.Instrumentation.AspNetCore
  • OpenTelemetry。Exporter.OpenTelemetryProtocol
  • OpenTelemetry.Instrumentation.Http(可选,用于检测外部HttpClient调用)
  • 其他OpenTelemetry.Instrumentation。*适用于您的应用程序的包(例如,SQL)

启动ASP.NET核心仪器时启动应用程序,通常在启动类的Configureservices中完成。下面的示例通过使用扩展方法启用此仪器IServiceCollection,这需要添加包OpenTelemetry.Extensions.Hosting给应用程序。这可以确保在主机关闭时销毁检测。

ConfigureServices(IServiceCollection services){…服务。AddOpenTelemetryTracing (builder => ConfigureOpenTelemetry(builder, cartStore));…}

此外,该服务设置OpenTelemetry收集器导出程序,这需要添加OpenTelemetry.Exporter.OpenTelemetryProtocol到应用程序,并配置OTLP端点指出出口商将发送追踪信息的地方。

private static void ConfigureOpenTelemetry(TracerProviderBuilder builder, ICartStore cartStore) {builder. addaspnetcoreinstrumentation ();if (cartStore是RedisCartStore RedisCartStore) {builder. addresdisinstrumentation (RedisCartStore . connectionmultiplexer);} var exportType = Environment.GetEnvironmentVariable("NEW_RELIC_DEMO_EXPORT_TYPE") ??“newrelic”;var newRelicApiKey = Environment.GetEnvironmentVariable("NEW_RELIC_API_KEY");var newRelicTraceUrl = Environment.GetEnvironmentVariable("NEW_RELIC_TRACE_URL");var serviceName = "CartService" + (exportType == "newrelic" ?字符串。空:$”——{exportType}”);builder.SetResourceBuilder (ResourceBuilder.CreateDefault()。AddService(serviceName, null, null, false, $"{exportType}-{Guid.NewGuid().ToString()}")); switch (exportType) { case "otlp": var otlpEndpoint = Environment.GetEnvironmentVariable("OTEL_EXPORTER_OTLP_SPAN_ENDPOINT")?? Environment.GetEnvironmentVariable("OTEL_EXPORTER_OTLP_ENDPOINT"); Builder.AddOtlpExporter(options => options.Endpoint = otlpEndpoint); Break; ... ... ... } }

运行MicroServices演示时,OpenTeLemetry收集器会在端口4317上自动旋转,该端口4317定义buildargsskaffold.yaml档案cartservice使用。

- 图像:cartservice上下文:SRC / cartservice搬运工:buildArgs:NEW_RELIC_DEMO_EXPORT_TYPE: “{{.NEW_RELIC_DEMO_EXPORT_TYPE}}” NEW_RELIC_API_KEY: “{{.NEW_RELIC_API_KEY}}” NEW_RELIC_TRACE_URL: “{{.NEW_RELIC_TRACE_URL}}” NEW_RELIC_METRIC_URL:“{{.NEW_RELIC_METRIC_URL}}“otel_exporter_otlp_span_endpoint:”Otel-collector:4317“

分析app数据

您现在可以在新的遗物中开始分析您的.NET应用程序数据,如下图所示的CartService摘要显示金色指标:响应时间,吞吐量和错误率 - 如果服务有问题,您可以缩小。

.NET应用程序数据截图

当您注意到响应时间或错误率激增时,请使用transactions页面来识别可能导致问题的事务。

交易截图

通过单击特定事务跟踪来进一步钻取,以获取请求的详细端到端视图,因为它在整个服务和图层中行进 - 所有这些都需要更快地解决问题。

OpenTeLemetry的增长

OpenTelemetry。net实现v1.0.1是opentelementetry的一个里程碑,也是opentelementetry被广泛接受的一个证明。New Relic很高兴成为OpenTelemetry项目的主要贡献者之一,并将继续我们的贡献和投资,以确保所有语言的跟踪和度量都能很快达到这个巨大的里程碑。

此外,为了帮助您轻松采用OpenTeLemetry,我们将通过更多可观察性功能和功能来发展我们的摄取方法和用户体验。当我们首先推出了新的遗物,请通过点击评论图标反馈用户界面。

试试New Relic One和它的openteletry的特点注册我们今天的永久自由tier。

Lavanya Chockalingam是New Relic APM products的高级产品营销经理。亚博最新版直播Lavanya以工程师的身份开始她的职业生涯,然后转到销售和产品营销岗位。Lavanya在硬件和软件行业都有工作经验,对技术以及如何利用技术解决现实世界的问题充满热情。查看贴子

对新遗物博客的写作有兴趣吗?亚搏体育登入网给我们发一份建议书!