Elysia Tools

在一个清晰的工作台里浏览工具、案例、可视化和主题指南。

热门分类

专题

语言
ZHDERUPTENFRES

Elysia Tools

导航

可观测性

分布式追踪示例

使用 Jaeger、OpenTelemetry 和其他现代可观测性工具的综合分布式追踪示例,适用于微服务架构

案例

这个案例集合中的条目

配置中等

Jaeger 分布式追踪配置

完整的 Jaeger 部署配置,包含收集器、代理和 UI,用于端到端分布式追踪

难度

6/10

预计时间

20 min

标签

jaeger, collector, agent, deployment, sampling, storage

config
# Jaeger Configuration File
# Complete setup for production distributed tracing

version: '3.8'

services:
  # Jaeger Collector
  jaeger-collector:
    image: jaegertracing/jaeger-collector:1.45
    environment:
      - SPAN_STORAGE_TYPE=elasticsearch
      - ES_SERVER_URLS=http://elasticsearch:9200
      - ES_USERNAME=elastic
      - ES_PASSWORD=changeme
      - ES_INDEX_PREFIX=jaeger
      - COLLECTOR_ZIPKIN_HOST_PORT=:9411
      - COLLECTOR_OTLP_ENABLED=true
    ports:
      - "14269:14269"
      - "14268:14268"
      - "14250:14250"
      - "9411:9411"
    depends_on:
      - elasticsearch

  # Jaeger Agent
  jaeger-agent:
    image: jaegertracing/jaeger-agent:1.45
    command: ["--reporter.grpc.host-port=jaeger-collector:14250"]
    ports:
      - "6831:6831/udp"
      - "6832:6832/udp"
    depends_on:
      - jaeger-collector

  # Jaeger Query Service
  jaeger-query:
    image: jaegertracing/jaeger-query:1.45
    environment:
      - SPAN_STORAGE_TYPE=elasticsearch
      - ES_SERVER_URLS=http://elasticsearch:9200
      - ES_USERNAME=elastic
      - ES_PASSWORD=changeme
      - ES_INDEX_PREFIX=jaeger
      - JAEGER_UI_CONFIG_JSON=/etc/jaeger-ui-config.json
    ports:
      - "16686:16686"
      - "16687:16687"
    volumes:
      - ./jaeger-ui-config.json:/etc/jaeger-ui-config.json
    depends_on:
      - elasticsearch

  # Elasticsearch Backend
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.8.0
    environment:
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms1g -Xmx1g
      - xpack.security.enabled=false
    ports:
      - "9200:9200"
    volumes:
      - elasticsearch_data:/usr/share/elasticsearch/data

volumes:
  elasticsearch_data:
format
YAML
version
1.x
components
["collector","agent","query-service","ui"]
storage
elasticsearch
features
["sampling","compression","batch-processing"]
配置复杂

OpenTelemetry 自动埋点

支持 Java、Python、Node.js 和 Go 应用的 OpenTelemetry 自动埋点配置,包含自定义 span

难度

7/10

预计时间

25 min

标签

opentelemetry, instrumentation, auto-instrument, telemetry, metrics, tracing

config
# OpenTelemetry Auto-Instrumentation Configuration
# Example configuration for Java applications

# Environment Variables
export OTEL_SERVICE_NAME=my-service
export OTEL_RESOURCE_ATTRIBUTES=service.name=my-service,service.version=1.0.0
export OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
export OTEL_TRACES_SAMPLER=traceidratio
export OTEL_TRACES_SAMPLER_ARG=1.0

# Java Agent Configuration
-javaagent:/app/opentelemetry-javaagent.jar -Dotel.service.name=my-service -Dotel.resource.attributes=service.name=my-service,service.version=1.0.0 -Dotel.exporter.otlp.endpoint=http://otel-collector:4317 -Dotel.traces.sampler=traceidratio -Dotel.traces.sampler.arg=1.0 -Dotel.javaagent.extensions=io.opentelemetry.extension.noopapi.NoOpApiExtension

# Custom Span Creation (Java Example)
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Tracer;

Tracer tracer = OpenTelemetry.getGlobalTracer("my-service");
Span span = tracer.spanBuilder("custom-operation")
    .setAttribute("user.id", "12345")
    .setAttribute("operation.type", "business")
    .startSpan();

// Do work here...
span.end();
format
JSON
specification
OpenTelemetry
languages
["java","python","nodejs","go","dotnet"]
features
["auto-instrumentation","custom-spans","baggage","propagation"]
文本中等

微服务请求流追踪

展示跨多个微服务的请求流示例分布式追踪,包含关联 ID 和上下文传播

难度

5/10

预计时间

10 min

标签

microservices, request-flow, correlation, context-propagation, span-tree

plaintext
{
  "trace_id": "550e8400-e29b-41d4-a716-446655440000",
  "spans": [
    {
      "trace_id": "550e8400-e29b-41d4-a716-446655440000",
      "span_id": "550e8400-e29b-41d4-a716-446655440001",
      "parent_span_id": null,
      "operation_name": "HTTP GET /api/orders",
      "service_name": "api-gateway",
      "start_time": 1701954645123000000,
      "end_time": 1701954645156000000,
      "duration_ms": 33,
      "tags": {
        "http.method": "GET",
        "http.url": "/api/orders",
        "http.status_code": "200",
        "component": "netty"
      },
      "logs": [
        {
          "timestamp": 1701954645140000000,
          "level": "info",
          "message": "Request authenticated successfully"
        }
      ]
    },
    {
      "trace_id": "550e8400-e29b-41d4-a716-446655440000",
      "span_id": "550e8400-e29b-41d4-a716-446655440002",
      "parent_span_id": "550e8400-e29b-41d4-a716-446655440001",
      "operation_name": "UserService.GetUser",
      "service_name": "user-service",
      "start_time": 1701954645130000000,
      "end_time": 1701954645145000000,
      "duration_ms": 15,
      "tags": {
        "user.id": "12345",
        "db.system": "postgresql",
        "operation.type": "query"
      }
    },
    {
      "trace_id": "550e8400-e29b-41d4-a716-446655440000",
      "span_id": "550e8400-e29b-41d4-a716-446655440003",
      "parent_span_id": "550e8400-e29b-41d4-a716-446655440001",
      "operation_name": "OrderService.GetOrders",
      "service_name": "order-service",
      "start_time": 1701954645132000000,
      "end_time": 1701954645152000000,
      "duration_ms": 20,
      "tags": {
        "user.id": "12345",
        "operation.type": "business"
      }
    }
  ]
}
format
JSON
services
["api-gateway","user-service","order-service","payment-service","notification-service"]
spanTypes
["http","database","cache","message-queue"]
complexity
multi-service
配置复杂

性能瓶颈检测

用于识别性能瓶颈的高级追踪配置,包含详细 span 属性和错误跟踪

难度

8/10

预计时间

30 min

标签

performance, bottleneck, analysis, optimization, error-tracking, metrics

config
# Performance Analysis Configuration
# Example setup for performance bottleneck detection

# Custom Span Attributes
attributes:
  - database.query.duration
  - cache.hit_ratio
  - memory.usage
  - cpu.utilization

# Performance Thresholds
thresholds:
  slow_query: 100ms
  high_memory: 80%
  high_cpu: 90%

# Alert Configuration
alerts:
  - name: Slow Database Queries
    condition: span.duration > 100ms
    severity: warning
format
YAML
features
["span-attributes","error-tracking","slow-queries","memory-usage","cpu-profiling"]
alerts
["threshold-based","anomaly-detection"]
integrations
["prometheus","grafana"]
配置复杂

OpenTelemetry Collector 管道

用于处理、过滤和导出追踪到多个后端的 OpenTelemetry Collector 配置

难度

7/10

预计时间

25 min

标签

otel-collector, pipeline, processors, exporters, receivers

config
# OpenTelemetry Collector Configuration
receivers:
  otlp:
    protocols:
      grpc:
      http:

processors:
  memory_limiter:
    check_interval: 5s
    limit_mib: 512
  batch:
    timeout: 5s
    send_batch_size: 1024
  attributes:
    actions:
      - key: environment
        value: production
        action: insert

exporters:
  otlp/jaeger:
    endpoint: jaeger-collector:4317
    tls:
      insecure: true
  logging:
    loglevel: info

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, batch, attributes]
      exporters: [otlp/jaeger, logging]
format
YAML
version
0.x
components
["receivers","processors","exporters","extensions"]
backends
["jaeger","zipkin","prometheus","elasticsearch"]
features
["batch-processing","sampling","filtering","transformation"]
代码中等

跨服务上下文传播

使用 OpenTelemetry 上下文 API 和自定义头在微服务间传播上下文的实现示例

难度

6/10

预计时间

15 min

标签

context-propagation, headers, cross-service, correlation, baggage

plaintext
// Context propagation across services (Node.js + OpenTelemetry)
import { context, propagation, trace } from '@opentelemetry/api'

const tracer = trace.getTracer('orders-service')

export async function handleIncomingRequest(req, res) {
  // Extract trace context from inbound HTTP headers
  const parentContext = propagation.extract(context.active(), req.headers)

  await context.with(parentContext, async () => {
    const span = tracer.startSpan('handle-order-request')

    try {
      span.setAttribute('http.route', req.url)
      span.setAttribute('service.name', 'orders-service')

      // Inject context when calling downstream service
      const headers = {}
      const spanContext = trace.setSpan(context.active(), span)
      propagation.inject(spanContext, headers)

      const response = await fetch('http://inventory-service/check', {
        method: 'POST',
        headers: {
          ...headers,
          'content-type': 'application/json'
        },
        body: JSON.stringify({ sku: req.body.sku, quantity: req.body.quantity })
      })

      if (!response.ok) {
        span.setAttribute('error', true)
        span.setAttribute('http.status_code', response.status)
      }

      res.status(200).json({ ok: true })
    } catch (error) {
      span.recordException(error)
      span.setAttribute('error', true)
      res.status(500).json({ ok: false })
    } finally {
      span.end()
    }
  })
}
format
JavaScript
apis
["@opentelemetry/api","@opentelemetry/sdk-node"]
concepts
["context","baggage","propagators","extract","inject"]
protocols
["http","grpc","messaging"]

工具

经常与该案例搭配使用的工具

相关内容

相关案例集合

相关内容

相关专题

专题

药代动力学教学模型与结果核查

用于教学或 QA 的药代公式、模型假设和结果一致性核查,不提供用药剂量、诊断或临床建议。

专题

经典与现代密码工具

在安全的教学或 CTF 场景中比较可逆的经典变换与现代加密,并明确玩具密码不等于安全防护。

专题

文本前后缀与包裹符号批处理,整行整词一次到位

给文本行或词批量添加前后缀,为 SQL、配置和 Markdown 给每个值加引号或反引号包裹,并剥掉粘贴列表带来的编号、符号和装饰。

专题

数学与数字转换工作流

按清晰的精度检查流程转换计量单位、进制、分数、科学计数法、罗马数字以及字节/位数值。

首页
工具3212
工作台
案例593
可视化471
文件查看器103
专题239
标签333
图像、音频与视频657

图像、音频、视频处理、转换与优化工具

数学、日期与金融647

计算器、数值计算、日期逻辑、统计与金融工具

设计与颜色298

颜色、版式、图形、视觉样式与设计辅助工具

文本与写作209

写作、清洗、格式化、提取与文本分析工具

开发与 Web193

开发者工具、网络处理、Web 调试与自动化辅助工具

转换与编码175

格式、文件、压缩包、单位与编码转换工具

潜客测验发布与联系人交接
讣告、悼词与纪念卡的家属复核及交付
本地习惯记录的备份、恢复演练与分享前检查
长文改编 X 串文与 LinkedIn 帖子的事实复核与交付
Markdown 互动课件审校、离线演示与交付

© 2026 Elysia Tools. 保留所有权利。

文档价格关于我们服务条款隐私政策Cookie 政策联系我们

Format Conversion

YAML-JSON转换器

在YAML和JSON格式之间转换

Development

配置文件语义 Diff

比较 JSON、YAML、TOML 和 dotenv 配置,按键路径显示变化并忽略排序与格式噪声。

Data Processing

JSONata 查询转换工作室

预览 JSONata 风格查询与转换,支持多数据对比,并导出 JSON、CSV、YAML 或 Markdown。

Development

OpenAPI 转 Postman Collection

把 OpenAPI 3.x 或 Swagger 2.0 规范(JSON/YAML)转成可直接导入的 Postman Collection v2.1.0,含文件夹、变量、认证与示例响应。

Development

分布式追踪解码与瀑布图可视化

解析 Jaeger、Zipkin 或 OpenTelemetry 的 trace JSON,并以瀑布图展示 span 时序与异常节点

Format Conversion

WireGuard/OpenVPN 到 Clash 与 sing-box 配置桥接器

将粘贴的 WireGuard 或 OpenVPN 客户端文本转换为 Mihomo/Clash YAML 或 sing-box JSON,并报告密钥字段;请勿分享私钥

Format Conversion

TOML / INI / HCL / .env / Nix / dotenv / Kubernetes ConfigMap / Secret 配置格式桥

在 dotenv .env、TOML、INI、Java .properties、YAML、JSON、HCL(Terraform/Vagrant 原生语法)与 Nix 属性集之间转换配置,并可输出 Kubernetes ConfigMap / Secret 清单;保留 ${VAR} / {{var}} 模板占位符与 envsubst 风格插值、记录类型推断来源(string/int/float/bool/list)、HCL 块标签自动折叠为嵌套键,往返 diff 突出非等价设置(丢失键、类型变化、值改写),输出对 Kustomize 补丁友好的 YAML。

Development

API 延迟预算规划器

规划并可视化 API 延迟预算。输入 P99 目标(如 ≤ 300ms)和各阶段分配(DNS、TCP、TLS、TTFB、Processing、Network),查看实时瀑布图、预算占用和超标告警。可选粘贴 OpenTelemetry 或 Datadog trace,反推基于真实测量的分配建议。

监控与可观测性

Datadog 监控示例

全面的 Datadog 监控和可观测性配置示例,包括 APM、日志、指标和仪表板

监控

Grafana 高级应用示例

全面的 Grafana 示例,涵盖高级仪表板设计、告警配置、数据源集成和插件开发

DevOps

ELK Stack 日志分析示例

全面的 ELK Stack(Elasticsearch、Logstash、Kibana)示例,用于分布式系统中的日志聚合、处理和可视化

API 文档

OpenAPI/Swagger 示例

使用 OpenAPI 3.0 和 Swagger 规范的 RESTful 服务综合 API 文档示例

构建工具

Parcel 打包工具

Parcel零配置打包工具示例,包括项目设置、插件和高级配置

包管理器

pnpm 包管理器示例

快速、节省磁盘空间的包管理器示例,包括monorepo管理、工作区配置和高级工作流