You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kibana中集成端到端追踪?自定义应用请求指标接入方法

集成OpenTelemetry实现全请求端到端追踪并在Kibana可视化

OpenTelemetry完全可以和Elastic Stack(含Kibana)配合,实现全应用请求的端到端追踪与可视化,以下是具体步骤:

1. 应用端集成OpenTelemetry SDK

  • 选择对应开发语言的OpenTelemetry SDK,同时安装对应框架的自动 instrumentation 库(比如Java的opentelemetry-java-instrumentation、Python的opentelemetry-instrumentation-flask),自动捕获HTTP请求、数据库调用、外部API调用等链路数据;如果需要自定义追踪关键业务步骤,可手动创建Span并添加状态码、耗时等属性。
  • 配置导出器,将追踪数据发送到OpenTelemetry Collector(推荐)或直接发送到Elastic APM Server。以Python Flask应用为例,核心配置代码如下:
from opentelemetry import trace
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.instrumentation.flask import FlaskInstrumentor

# 初始化TracerProvider
trace.set_tracer_provider(TracerProvider())
tracer = trace.get_tracer(__name__)

# 配置OTLP导出器,指向Collector或APM Server地址
otlp_exporter = OTLPSpanExporter(endpoint="http://your-collector-or-apm-server:4318/v1/traces")
trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(otlp_exporter))

# 启用Flask自动 instrumentation
app = Flask(__name__)
FlaskInstrumentor().instrument_app(app)

2. 部署OpenTelemetry Collector(可选但推荐)

  • Collector作为数据中转层,支持接收多来源的追踪数据,可对数据进行过滤、聚合等预处理,再统一转发到Elastic APM Server。核心配置示例(config.yaml):
receivers:
  otlp:
    protocols:
      http:
        endpoint: "0.0.0.0:4318"

processors:
  batch:

exporters:
  elasticapm:
    endpoint: "http://your-apm-server:8200"
    api_key: "your-apm-api-key"

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [elasticapm]

3. 配置Elastic APM Server

  • 确保APM Server已部署并与Elasticsearch连通,追踪数据会被APM Server解析后写入Elasticsearch的apm*系列索引中。无需额外复杂配置,只要保证Collector或应用SDK的导出地址指向APM Server即可。

4. Kibana中可视化全链路数据

  • 默认APM视图:打开Kibana的APM板块,可直接查看服务依赖拓扑、请求链路详情、每个Span的耗时、HTTP状态码等核心指标,支持按请求类型、时间范围筛选。
  • 自定义仪表板:
    • 在Discover中打开apm*索引,可查看原始追踪数据,筛选transaction.duration.us(耗时)、http.status_code(状态码)、span.name(步骤名称)等字段。
    • 进入Dashboard页面,创建可视化组件:比如用柱状图统计不同状态码的请求占比,折线图展示请求耗时趋势,表格展示单请求的全链路步骤明细。
    • 可通过Kibana的追踪ID关联整个请求链路,展示从入口到各下游服务的完整调用流程。

额外提示

  • 确保所有参与链路的服务都集成了OpenTelemetry,才能形成完整的端到端追踪。
  • 可在Span中添加自定义属性(如用户ID、业务订单ID),方便后续在Kibana中精准筛选分析。

内容的提问来源于stack exchange,提问作者FishOnAComputer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 02:07:04