链路追踪jaeger多环境部署

2024-01-29 01:08

本文主要是介绍链路追踪jaeger多环境部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

链路追踪

说明:一个es,三个收集器和三个ui,以索引前缀进行区分环境

jaegerUI工具


docker run -itd --name jaeger.ui.dev -p16686:16686 \-e STORAGE=elasticsearch -e ES_SERVER_URLS=http://172.16.64.12:6123 -e SPAN_STORAGE_TYPE=elasticsearch -e ES_TAGS_AS_FIELDS=true \jaegertracing/all-in-one:1.24 --es.index-prefix=devdocker run -itd --name jaeger.ui.check -p16696:16686 \-e STORAGE=elasticsearch -e ES_SERVER_URLS=http://172.16.64.12:6123 -e SPAN_STORAGE_TYPE=elasticsearch -e ES_TAGS_AS_FIELDS=true \jaegertracing/all-in-one:1.24 --es.index-prefix=checkdocker run -itd --name jaeger.ui.prod -p16706:16686 \-e STORAGE=elasticsearch -e ES_SERVER_URLS=http://172.16.64.12:6123 -e SPAN_STORAGE_TYPE=elasticsearch -e ES_TAGS_AS_FIELDS=true \jaegertracing/all-in-one:1.24 --es.index-prefix=prod

jaeger收集器

docker run -itd --name jaeger.control.dev \-e SPAN_STORAGE_TYPE=elasticsearch -e ES_SERVER_URLS=http://172.16.64.12:6123 -e LOG_LEVEL=debug \-p 14250:14250 -p 14269:14269 -p 14268:14268 \jaegertracing/jaeger-collector:1.24 --es.index-prefix=devdocker run -itd --name jaeger.control.check \-e SPAN_STORAGE_TYPE=elasticsearch -e ES_SERVER_URLS=http://172.16.64.12:6123 -e LOG_LEVEL=debug \-p 14260:14250 -p 14279:14269 -p 14278:14268 \jaegertracing/jaeger-collector:1.24 --es.index-prefix=checkdocker run -itd --name jaeger.control.prod \-e SPAN_STORAGE_TYPE=elasticsearch -e ES_SERVER_URLS=http://172.16.64.12:6123 -e LOG_LEVEL=debug \-p 14270:14250 -p 14289:14269 -p 14288:14268 \jaegertracing/jaeger-collector:1.24 --es.index-prefix=prod

端口说明 14269.信息查询端口、14250.grpc服务端口、 14268.http服务端口

elasticsearch


docker run -p 6123:9200 -p 9300:9300 -itd -e "discovery.type=single-node" --name elastic \-v /data/elastic/:/usr/share/elasticsearch/data \docker.elastic.co/elasticsearch/elasticsearch:7.9.2

另外jaeger.ui 的界面是可以自定义的,类似如下图

在这里插入图片描述
这种配置只需要在最初创建容器的时候指定一个配置

docker run -itd --name jaeger.ui.prod2 -p 16706:16686 -e STORAGE=elasticsearch -e ES_SERVER_URLS=http://172.16.64.12:6123 -e SPAN_STORAGE_TYPE=elasticsearch -e ES_TAGS_AS_FIELDS=true -v /etc/jaeger:/etc/conf.d jaegertracing/all-in-one:1.24 --es.index-prefix=prod --query.ui-config=etc/conf.d/prod.jaeger-ui.conf.json

prod.jaeger-ui.conf.json内容

{"dependencies": {"dagMaxNumServices": 200,"menuEnabled": true},"monitor": {"menuEnabled": true},"archiveEnabled": true,"tracking": {"gaID": "UA-000000-3","trackErrors": true},"menu": [{"label": "链路分析","items": [{"label": "链路sql分析","url": "http://172.16.64.12:9002/trace/analyse/high_time_sql/view"},{"label":"链路业务分析","url":"http://172.16.64.12:9002/trace/analyse/high_time_trace/view"}]}],"search": {"maxLookback": {"label": "5 Days","value": "5d"},"maxLimit": 1500},"linkPatterns": [{"type": "process","key": "jaeger.version","url": "https://github.com/jaegertracing/jaeger-client-java/releases/tag/#{jaeger.version}","text": "Information about Jaeger release #{jaeger.version}"}]
}

然后通过点击上图中对应的链接,就会跳转到对应的页面
在这里插入图片描述
这个页面前端是用vue写的,后端用golang


将es换成clickhouse,节约磁盘

前言:
clickhouse 为列式存储引擎,
与es比有数据高压缩率优势。

clickhouse安装

端口 8123.http访问端口、9000.客户端访问端口、9363.prometheus监控端口
config.xml(配置文件比较大,可以建一个新容器然后从里面拷贝出来)

# 只修改这个地方,把注释打开<prometheus><endpoint>/metrics</endpoint><port>9363</port><metrics>true</metrics><events>true</events><asynchronous_metrics>true</asynchronous_metrics></prometheus>
docker run -itd --name clickhouse --ulimit nofile=262144:262144 \-p 18123:8123 -p 19000:9000 -p 19363:9363  \-v /soft/src/clickhouse/data:/var/lib/clickhouse \-v /soft/src/clickhouse/config.xml:/etc/clickhouse-server/config.xml  \-v /soft/src/clickhouse/logs:/var/log/clickhouse-server  clickhouse/clickhouse-server

桌面客户端
下载地址 https://dbeaver.io/download/
使用方式与navicat 一致,就不详细讲解了。

jaeger工具链接clickhouse

插件附件(config.yaml jaeger-clickhouse)
config.yaml

# clickhouse 存储引擎访问地址
address: 172.16.64.12:19000
# Directory with .sql files to run at plugin startup, mainly for integration tests.
# Depending on the value of "init_tables", this can be run as a
# replacement or supplement to creating default tables for span storage.
# If init_tables is also enabled, the scripts in this directory will be run first.
init_sql_scripts_dir:
# Whether to automatically attempt to create tables in ClickHouse.
# By default, this is enabled if init_sql_scripts_dir is empty,
# or disabled if init_sql_scripts_dir is provided.
init_tables:
# Maximal amount of spans that can be pending writes at a time.
# New spans exceeding this limit will be discarded,
# keeping memory in check if there are issues writing to ClickHouse.
# Check the "jaeger_clickhouse_discarded_spans" metric to keep track of discards.
# If 0, no limit is set. Default 10_000_000.
max_span_count:
# Batch write size. Default 10_000.
batch_write_size:
# Batch flush interval. Default 5s.
batch_flush_interval:
# Encoding of stored data. Either json or protobuf. Default json.
encoding:
# Path to CA TLS certificate.
ca_file:
# Username for connection to ClickHouse. Default is "default".
username:
# Password for connection to ClickHouse.
password:
# ClickHouse database name. The database must be created manually before Jaeger starts. Default is "default".
database: dev
# If non-empty, enables a tenant column in tables, and uses the provided tenant name for this instance.
# Default is empty. See guide-multitenancy.md for more information.
tenant:
# 用于服务prometheus指标的端点。默认localhost: 9090。 必填(不开放时建议填一个无用端口)
metrics_endpoint: localhost:9091
# Whether to use sql scripts supporting replication and sharding.
# Replication can be used only on database with Atomic engine.
# Default false.
replication:
# Table with spans. Default "jaeger_spans_local" or "jaeger_spans" when replication is enabled.
# 前缀,可自己指定
spans_table: otel_traces
# Span index table. Default "jaeger_index_local" or "jaeger_index" when replication is enabled.
# 前缀,可自己指定
spans_index_table: otel_traces_trace_id_ts
# Operations table. Default "jaeger_operations_local" or "jaeger_operations" when replication is enabled.
operations_table:
# TTL for data in tables in days. If 0, no TTL is set. Default 0.
ttl:
# The maximum number of spans to fetch per trace. If 0, no limit is set. Default 0.
max_num_spans:

如果三个环境用同一个clickhouse,需要指定(database: dev)库,通过不同的库区分,避免索引冲突,当然库需要提前创建
jaeger-clickhouse见附件(详情见官网:https://www.jaegertracing.io/docs/1.52/deployment/#remote-storage-component)

SPAN_STORAGE_TYPE=grpc-plugin 存储类型改为插件
–grpc-storage-plugin.binary 配置插件路径(容器内路径)
–grpc-storage-plugin.configuration-file 配置插件配置文件路径(容器内路径)
jaeger collector 收集器

jaeger.conrol 组件删除原有的重启新的,数据的存储地址调整为clickhouse

docker run -itd --name jaeger.control-dev \-e SPAN_STORAGE_TYPE=grpc-plugin \-v /soft/src/clickhouse-dev/jaeger-clickhouse:/home/jaeger-clickhouse \-v /soft/src/clickhouse-dev/config.yaml:/home/config.yaml \-p 14250:14250 -p 14269:14269 -p 14268:14268 \jaegertracing/jaeger-collector:1.52 --grpc-storage-plugin.binary=/home/jaeger-clickhouse --grpc-storage-plugin.configuration-file=/home/config.yaml

jaeger query 查询ui

jaeger·ui 组件删除原有容器重启新的容器,数据读取来源调整为clickhouse

docker run -itd --name jaeger.ui-dev \-e SPAN_STORAGE_TYPE=grpc-plugin \-p 18686:16686 \-p 18687:16687 \-p 18685:16685 \-v /soft/src/clickhouse-dev/jaeger-clickhouse:/home/jaeger-clickhouse \-v /soft/src/clickhouse-dev/config.yaml:/home/config.yaml \jaegertracing/jaeger-query:1.52 --grpc-storage-plugin.binary=/home/jaeger-clickhouse --grpc-storage-plugin.configuration-file=/home/config.yaml

这篇关于链路追踪jaeger多环境部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/655332

相关文章

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

SpringBoot实现多环境配置文件切换

《SpringBoot实现多环境配置文件切换》这篇文章主要为大家详细介绍了如何使用SpringBoot实现多环境配置文件切换功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 示例代码结构2. pom文件3. application文件4. application-dev文

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA