jaeger 使用ElasticSearch 作为后端存储
jaeger 支持es 作为后端存储,这样对于查询、以及系统扩展是比较方便的
使用docker-compose 运行
环境准备
参考项目: https://github.com/rongfengliang/nginx-opentracing-demo
- docker-compose file
version: '3' services: nginx: image: opentracing/nginx-opentracing networks: trivial_example: aliases: - nginx volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./jaeger-config.json:/etc/jaeger-config.json expose: - "8080" ports: - "8080:8080" elasticsearch: image: elasticsearch:5.6.12 ulimits: memlock: soft: -1 hard: -1 ports: - 9200:9200 volumes: - ./es-data:/usr/share/elasticsearch/data environment: - transport.host=0.0.0.0 - http.cors.enabled=true - http.cors.allow-origin="*" - discovery.zen.minimum_master_nodes=1 networks: trivial_example: aliases: - elasticsearch app-service: build: context: . dockerfile: ./Dockerfile networks: trivial_example: aliases: - app-service expose: - "9001" ports: - "9001:9001" command: - /app/server - -collector_host - jaeger deps: image: jaegertracing/spark-dependencies environment: - STORAGE=elasticsearch - ES_NODES=http://elasticsearch:9200 networks: trivial_example: aliases: - deps jaeger: image: jaegertracing/all-in-one:1.7 environment: - COLLECTOR_ZIPKIN_HTTP_PORT=9411 - ES_SERVER_URLS=http://elasticsearch:9200 - SPAN_STORAGE_TYPE=elasticsearch - ES_TAGS_AS_FIELDS=true networks: trivial_example: aliases: - jaeger expose: - "9411" - "16686" ports: - "9411:9411" - "16686:16686" networks: trivial_example: {}
- 说明
主要是通过环境变量指定存储类型以及es 服务器集群的地址,注意对于依赖关系需要有一个单独的服务
启动&&测试
- 启动
docker-compose up -d
- 效果
说明
关于依赖的显示,需要使用spark-dependencies处理,参考docker-compose file
同时需要配置为定时任务
参考资料
https://www.jaegertracing.io/docs/1.7/architecture/
https://www.jaegertracing.io/docs/1.7/deployment/
https://github.com/rongfengliang/nginx-opentracing-demo
https://github.com/jaegertracing/jaeger/blob/master/plugin/storage/es/README.md
https://hub.docker.com/r/jaegertracing/spark-dependencies/