• java,springboot应用整合jaeger


    1. 下载最新的 opentelemetry-javaagent.jar from Releases

    2. 运行jar

      java -javaagent:path/to/opentelemetry-javaagent.jar -jar myapp.jar
      
    3. 配置 jaeger 服务

      1. # 方式一:
      2. java -javaagent:path/to/opentelemetry-javaagent.jar \
      3. -Dotel.service.name=your-service-name \
      4. -Dotel.traces.exporter=jaeger \
      5. -Dotel.exporter.jaeger.endpoint=http://localhost:14250 \
      6. -jar myapp.jar
      7. # 方式二(容器添加环境变量):
      8. OTEL_TRACES_EXPORTER=jaeger
      9. OTEL_EXPORTER_JAEGER_ENDPOINT=http://localhost:14250
      10. OTEL_SERVICE_NAME=your-service-name

    参考Dockerfile

    1. FROM dggecr01.huawei.com:80/scan-engine/ringcentral/jdk:latest
    2. WORKDIR /app
    3. EXPOSE 8090
    4. COPY ./target/myapp.jar .
    5. COPY ./lib/opentelemetry-javaagent.jar .
    6. CMD java -javaagent:opentelemetry-javaagent.jar -jar myapp.jar

    java实战

    部署jaeger,一体1.38版本 弃用这种方式安装,原因时间长了内存爆炸

    docker run -d --name jaeger   -e COLLECTOR_ZIPKIN_HOST_PORT=:9411   -e COLLECTOR_OTLP_ENABLED=true   -p 6831:6831/udp   -p 6832:6832/udp   -p 5778:5778   -p 16686:16686   -p 4317:4317   -p 4318:4318   -p 14250:14250   -p 14268:14268   -p 14269:14269   -p 9411:9411   jaegertracing/all-in-one:1.38

     

    分开的安装

    1. docker run -d --name=jaeger-collector -p 9411:9411 -p 14250:14250 -p 14268:14268 -p 14269:14269 -e SPAN_STORAGE_TYPE=elasticsearch -e ES_SERVER_URLS=http://1.2.1.5:9200 -e ES_INDEX_PREFIX=test jaegertracing/jaeger-collector:1.38
    2. docker run -d --name=jaeger-agent -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778/tcp -p 5775:5775/udp -e REPORTER_GRPC_HOST_PORT=1.2.1.5:14250 jaegertracing/jaeger-agent:1.38
    3. docker run -d --name=jaeger-query -p 16686:16686 -p 16687:16687 -e SPAN_STORAGE_TYPE=elasticsearch -e ES_SERVER_URLS=http://1.2.1.5:9200 -e ES_INDEX_PREFIX=test jaegertracing/jaeger-query:1.38
    4. Jaeger Spark依赖项 这是一个Spark作业,它从存储中收集跨度,分析服务之间的链接,并将其存储以供以后在UI中呈现
    5. docker pull jaegertracing/spark-dependencies:latest
    6. 下面这个是执行一次的,会自动退出,每次更新需要执行一次
    7. docker run -d --name=jaeger-spark -e STORAGE=elasticsearch -e ES_NODES=http://1.2.1.5:9200 -e ES_INDEX_PREFIX=test jaegertracing/spark-dependencies:latest

    访问ui

    http://ip:16686/

    因为下载的是上面的opentelemetry-javaagent.jar,目前没有用到1.38版的agent,可以单独下载

    Jaeger – Download Jaeger

    Dockerfile

    1. FROM anapsix/alpine-java:8_server-jre_unlimited
    2. MAINTAINER jeecgos@163.com
    3. RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    4. RUN mkdir -p /javaapp
    5. WORKDIR /javaapp
    6. EXPOSE 8079
    7. ADD ./javaapp-1.0-SNAPSHOT.jar ./
    8. ADD ./opentelemetry-javaagent.jar ./
    9. CMD sleep 2;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -javaagent:opentelemetry-javaagent.jar -jar javaapp-1.0-SNAPSHOT.jar

    构建镜像docker build -t javaapp:latest .

    运行docker-compose.yml

    1. version: '2'
    2. services:
    3. javaapp:
    4. container_name: javaapp
    5. image: javaapp:latest
    6. hostname: javaapp
    7. ports:
    8. - 8079:8079
    9. restart: on-failure
    10. environment:
    11. - TZ=Asia/Shanghai
    12. - OTEL_TRACES_EXPORTER=jaeger
    13. - OTEL_EXPORTER_JAEGER_ENDPOINT=http://192.168.1.182:14250
    14. - OTEL_SERVICE_NAME=javaapp
    15. - OTEL_METRICS_EXPORTER=none
    1. 原因
    2. OpenTelemetry 默认配置 otel.metrics.exporter=otlp (default), 因此 javaagent 默认会往 http://localhost:4317 推送 metrics 指标。
    3. 解决
    4. 设置 otel.metrics.exporter=none 或 环境变量OTEL_METRICS_EXPORTER=none

  • 相关阅读:
    在ubuntu20.04 上配置 qemu/kvm linux kernel调试环境
    结构体类型
    (附源码)spring boot校园拼车微信小程序 毕业设计 091617
    java企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
    docker镜像与容器基本的基本操作
    MySQL 多表查询
    分布式session共享配置
    [PAT练级笔记] 35 Basic Level 1035 插入与归并
    安卓玩机----展讯芯片机型解锁 读写分区工具 操作步骤解析
    从BeanFactory源码看Bean的生命周期
  • 原文地址:https://blog.csdn.net/u014756339/article/details/128131085