zoukankan      html  css  js  c++  java
  • grafana tempo 分布式追踪框架学习试用

    环境基于了官方的docker-compose demo

    环境准备(基于docker-compose 运行)

    • docker-compose 文件
    version: "3"
    services:
      tempo:
        image: grafana/tempo:latest
        command: 
          - "-storage.trace.backend=local"                  # tell tempo where to permanently put traces
          - "-storage.trace.local.path=/tmp/tempo/traces"   
          - "-storage.trace.wal.path=/tmp/tempo/wal"        # tell tempo where to store the wal
          - "-auth.enabled=false"                           # disables the requirement for the X-Scope-OrgID header
          - "-server.http-listen-port=3100" 
        volumes:
          - ./example-data/tempo:/tmp/tempo
        ports:
          - "14268"  # jaeger ingest
        logging:
          driver: loki
          options:
            loki-url: 'http://localhost:3100/api/prom/push'
      tempo-query:
        image: grafana/tempo-query:latest
        command: ["--grpc-storage-plugin.configuration-file=/etc/tempo-query.yaml"]
        volumes:
          - ./etc/tempo-query.yaml:/etc/tempo-query.yaml
        ports:
          - "16686:16686"  # jaeger-ui
        logging:
          driver: loki
          options:
            loki-url: 'http://localhost:3100/api/prom/push'
      minio:
        image: minio/minio
        environment:
          - MINIO_ACCESS_KEY=tempo
          - MINIO_SECRET_KEY=supersecret
        command:  minio server /data
        ports:
          - "9000:9000"
      prometheus:
        image: prom/prometheus:latest
        volumes:
          - ./etc/prometheus.yaml:/etc/prometheus.yaml
        entrypoint:
          - /bin/prometheus
          - --config.file=/etc/prometheus.yaml
        ports:
          - "9090:9090"
        logging:
          driver: loki
          options:
            loki-url: 'http://localhost:3100/api/prom/push'
      synthetic-load-generator:
        image: omnition/synthetic-load-generator:1.0.25
        volumes:
          - ./etc/load-generator.json:/etc/load-generator.json
        environment:
          - TOPOLOGY_FILE=/etc/load-generator.json
          - JAEGER_COLLECTOR_URL=http://tempo:14268
      grafana:
        image: grafana/grafana:7.3.6
        volumes:
          - ./example-data/datasources:/etc/grafana/provisioning/datasources
          - ./example-data/dashboards-provisioning:/etc/grafana/provisioning/dashboard
        ports:
          - "3000:3000"
        logging:
          driver: loki
          options:
            loki-url: 'http://localhost:3100/api/prom/push'
      loki:
        image: grafana/loki:2.1.0
        command: -config.file=/etc/loki/local-config.yaml
        ports:
          - "3100:3100"                                
        environment:
          - JAEGER_AGENT_HOST=tempo
          - JAEGER_ENDPOINT=http://tempo:14268/api/traces # send traces to Tempo
          - JAEGER_SAMPLER_TYPE=const
          - JAEGER_SAMPLER_PARAM=1
        logging:
          driver: loki
          options:
            loki-url: 'http://localhost:3100/api/prom/push'
    • 依赖的组件说明
      依赖了loki,grafana,prometheus,synthetic-load-generator(生成metrics)
      tempo 包含的组件(engine,以及query),容器的日志基于了loki plugin,相关prometheus
      以及grafana datasource 还有dashboard 配置,参考github 配置

    运行

    • 首先安装docker loki log plugin
     
    docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
    • 运行
    docker-compose up -

    效果

    注意需要输入一个traceid,可以同loki 查找

    说明

    grafana 的tempo 是一个很不错的工具,至少目前来看比使用jaeger的技术原生方案至少会简化好多,当然tempo 也是在巨人的肩
    膀上成长的,grafana 的agent 也是一个很不错的工具,集成了log,metrics,trace,好处是保证了各种元数据的一致

    参考资料

    https://github.com/rongfengliang/grafana-tempo-learning
    https://github.com/grafana/tempo/tree/master/example/docker-compose

  • 相关阅读:
    event与WaitForSingleObject、MsgWaitForMultipleObjects等
    vc不包含MFC就不打印内存泄露?
    使用visual leak detector(vld)查找内存泄露
    C#里面中将字符串转为变量名
    如何编写nopCommerce插件
    object成员,不见了!
    NopCommerce 定制系列(一):增加 Sha256+Base64 加密
    c#中的二维数组与锯齿数组
    待搞清楚
    NopCommerce 2.5的部署
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/14242689.html
Copyright © 2011-2022 走看看