在上一篇文章中,介绍了如何在k8s中无侵入安装Otel探针并实现了无侵入(某些语言还无法实现,比如Go的eBPF对内核的苛刻要求)的分布式跟踪。这篇文章发出后有读者评论javaagent的“无侵入”一说,这里有必要解释下。“无侵入”主要指的是不需要修改应用程序的业务逻辑代码就能实现的功能,对应用程序透明无感知,让开发者专注于业务开发;同时由于无需修改应用程序代码,更易于集成;同时还维护简单,在多种语言、框架间保证功能的一致性。而JavaAgent在JVM启动时加载,它在运行时修改字节码来注入跟踪代码,而不是在应用程序的源代码层面上进行修改。背景分布式跟踪分布式跟踪是监控和诊断微服务请求流程的关
背景OpenTelemetry探针OpenTelemetry(简称Otel,最新的版本是1.27)是一个用于观察性的开源项目,提供了一套工具、APIs和SDKs,用于收集、处理和导出遥测数据(如指标、日志和追踪信息)。应用程序遥测数据(如追踪、指标和日志)的收集是通过探针来完成的,探针通常以库的形式集成到应用程序中,自动捕获重要信息协助监控和调试。OpenTelemetry探针支持市面上大多数的编程语言,探针的安装(通常被称为插桩,Instrumentation)分为手动和自动两种方式。手动插桩:指开发者直接在其应用程序代码中显式地添加遥测数据收集的代码,需要手动完成SDK初始化、插入追踪点、
这篇文章发出后有读者评论javaagent的“无侵入”一说,这里有必要解释下。“无侵入”主要指的是不需要修改应用程序的业务逻辑代码就能实现的功能,对应用程序透明无感知,让开发者专注于业务开发;同时由于无需修改应用程序代码,更易于集成;同时还维护简单,在多种语言、框架间保证功能的一致性。而JavaAgent在JVM启动时加载,它在运行时修改字节码来注入跟踪代码,而不是在应用程序的源代码层面上进行修改。背景分布式跟踪分布式跟踪是监控和诊断微服务请求流程的关键技术,也是可观测性的关键组成部分,提供了对微服务架构中复杂交互和性能问题的深入洞察。它通过提供服务间请求链路的清晰视图来管理复杂性,并帮助识别
背景OpenTelemetry探针OpenTelemetry(简称Otel,最新的版本是1.27)是一个用于观察性的开源项目,提供了一套工具、APIs和SDKs,用于收集、处理和导出遥测数据(如指标、日志和追踪信息)。应用程序遥测数据(如追踪、指标和日志)的收集是通过探针来完成的,探针通常以库的形式集成到应用程序中,自动捕获重要信息协助监控和调试。OpenTelemetry探针支持市面上大多数的编程语言,探针的安装(通常被称为插桩,Instrumentation)分为手动和自动两种方式。手动插桩:指开发者直接在其应用程序代码中显式地添加遥测数据收集的代码,需要手动完成SDK初始化、插入追踪点、
在故障排除和事后分析中,为了使数据具有价值,属性名称需要在每种遥测类型、工具和服务中保持一致。译自Top5BestPracticesforNamingOpenTelemetryAttributes,作者CarlBrahms是Chronosphere客户成功团队的成员,拥有多年的监控、观测和事件管理平台经验。他对三件事情充满激情:协助团队发现实时数据洞察、生成式人工智能以及...当涉及使用OpenTelemetry(OTel)分布式追踪数据时,仅仅收集数据是不够的;您需要采取措施确保数据易于查找并与其他数据相关联。这就是制定良好属性命名标准的目的。有效的属性命名不仅仅是一种最佳实践;它是一项关键
作者:禅与计算机程序设计艺术1.简介OpenTelemetry是CNCF(CloudNativeComputingFoundation)旗下的一个开源项目。它的目标是在云原生时代成为应用性能监控领域的事实标准,目前已经成为Prometheus、Jaeger等工具的事实标准。OpenTelemetry提供了一套统一的API和SDK,使得开发者可以基于此构建各类语言的应用程序。由于OpenTracing和OpenCensus的功能上存在差异,因此OpenTelemetry将作为下一代跟踪标准,并于2020年初正式宣布对外发布。本文作者将会通过OpenTelemetry的介绍以及如何将其与Prome
Observability-可观测性鸟瞰正如之前文章所述,可观测性是根据对系统产生的外部数据(例如日志、指标和跟踪)的了解来获取系统内部发生的事情的能力。可观测性通常通过遥测数据来辅助,遥测数据可以通过Dynatrace以及OpenTelemetry等开源项目提供。OpenTelemetry是一个云原生计算基金会(CNCF)沙盒项目,其目标是提供一组统一的供应商不可知库/API、SDK和其他工具。它的主要贡献者之一是Dynatrace。基于 OpenTelemetry,IT团队可以检测他们的应用程序并生成、收集和导出遥测数据,以分析和了解软件架构性能和系统行为。正如Kubernetes已成为容
这篇文章旨在让您对OpenTelemetry有基本的了解。将涵盖的主题有:分布式追踪OpenTelemetry是什么?OpenTelemetry检测(自动和手动)OpenTelemetry协议(OTLP)OpenTelemetryCollectorsOpenTelemetryCollectors部署模式OpenTelemetry后端OpenTelemetryonKubernetesOpenTelemetryOperatorOpenTelemetry示例应用程序在本文结束时,您将了解如何使用OpenTelemetryOperator在应用程序中实现跟踪,而无需更改任何代码。分布式追踪让我们首先了
我们知道对于Java应用可以通过OpenTelemetry提供的Javaagent来实现自动埋点功能,在大多数场景下也完全足够了,但是有时候我们需要更加精细的控制,这时候我们就需要使用手动埋点的方式来实现了。使用注解埋点我们可以在Java应用通过手动埋点的方式来实现链路追踪,但如果我们不希望进行太多的代码更改,那么可以使用注解的方式来实现,OpenTelemetry提供了一些注解来帮助我们实现手动埋点,比如 @WithSpan、@SpanAttribute。首先我们需要添加依赖库 opentelemetry-instrumentation-annotations。io.opentelemetr
前面我们介绍了如何通过OpenTelemetryCollector来收集Kubernetes集群的指标数据,接下来我们再来了解下如何收集集群的日志记录数据。安装Loki首先我们需要部署Loki来收集日志数据,同样我们这里使用HelmChart来快速部署,不过需要注意同样不需要部署任何日志采集器,因为我们将使用OpenTelemetryCollector来收集日志数据,然后再将其发送到Loki中。$helmrepoaddgrafanahttps://grafana.github.io/helm-chart$helmrepoupdate我们这里创建一个 loki-values.yaml 文件来配置