zoukankan      html  css  js  c++  java
  • Dapr + .NET Core实战(八)服务监测

    4小时Dapr+.NET 5+K8S 的实战  https://ke.qq.com/course/4000292?tuin=1271860f

    Dapr进阶虚拟机集群实战(非K8S) https://ke.qq.com/course/4002149?tuin=1271860f

                       

    服务监测

    分布式服务性能指标,链路追踪,运行状况,日志记录都很重要,我们日常开发中为了实现这些功能需要集成很多功能,替换监控组件时成本也很高。

    Dapr 可观测性模块将服务监测与应用程序分离。它自动捕获由 Dapr sidecar 和 Dapr 服务生成的流量。它还公开性能指标、资源利用率和系统的运行状况。 遥测以开放标准格式发布,使信息能够馈入到选择的监视后端。当 Dapr 获取监控数据时,应用程序不知道如何实现可观测性。 无需引用库或实现自定义检测代码。 Dapr可以使开发人员专注于构建业务逻辑,而不是监测管道。

    工作原理

    Dapr的Sidecar支持监测功能。 当服务间通信时,Dapr sidecar 会截获流量并提取跟踪、指标和日志记录信息。 监测以开放标准格式发布。 默认情况下,Dapr 支持 OpenTelemetry 和 Zipkin

    Dapr收集器可以将遥测数据发布到不同的后端监视工具。 这些工具可以查询分析 Dapr 遥测数据。

    Zipkin服务跟踪

    Zipkin 是一种开源分布式跟踪系统。 它可以将遥测数据进行存储和可视化。 Dapr 提供对 Zipkin 的默认支持。我们可以查看Dapr默认配置C:Usersusername.daprconfig.yaml,指定了zipkin的配置信息

    apiVersion: dapr.io/v1alpha1
    kind: Configuration
    metadata:
      name: daprConfig
    spec:
      tracing:
        samplingRate: "1"
        zipkin:
          endpointAddress: http://localhost:9411/api/v2/spans

    这个Zipkin服务是在初始化dapr的时候,启动的一个docker容器

    我们可以访问一下 http://localhost:9411/zipkin/查看UI

     现在运行backend和frontend

    dapr run --dapr-http-port 3511 --app-port 5000 --app-id backend dotnet  .BackEndinDebug
    et5.0BackEnd.dll
    
    dapr run --dapr-http-port 3501 --app-port 5001  --app-id frontend dotnet  .FrontEndinDebug
    et5.0FrontEnd.dll

    通过postman访问

     查看zipkin ui中的调用记录,点击SHOW可以查看调用详情

      查看zipkin ui中的服务依赖关系

    性能指标收集

    Dapr sidecar 会公开指标终结点默认是9090,可以通过--metrics-port 9090修改端口,可以查看控制台日志

    time="2021-09-28T15:58:56.0700006+08:00" level=info msg="metrics server started on :22869/" app_id=backend instance=chesterchen-lap scope=dapr.metrics type=log ver=1.4.0

    Dapr使用Prometheus作为标准,Prometheus会调用Sidecar终结点,收集指标

     下面我们运行frontend指定其--metrics-port 9091,运行backend指定其端口9090

    dapr run --dapr-http-port 3511 --app-port 5000 --app-id backend dotnet  .BackEndinDebug
    et5.0BackEnd.dll --metrics-port 9090
    
    
    dapr run --dapr-http-port 3501 --app-port 5001  --app-id frontend dotnet  .FrontEndinDebug
    et5.0FrontEnd.dll --metrics-port 9091

    在dapr默认目录下创建prometheus配置文件prometheus.yml

    global:
      scrape_interval:     15s # By default, scrape targets every 15 seconds.
    
    # A scrape configuration containing exactly one endpoint to scrape:
    # Here it's Prometheus itself.
    scrape_configs:
      - job_name: 'dapr'
    
        # Override the global default and scrape targets from this job every 5 seconds.
        scrape_interval: 5s
    
        static_configs:
          - targets: ['192.168.43.94:9090','192.168.43.94:9091'] # Replace with Dapr metrics port if not default

    通过docker运行prometheus

    C:Userschesterychen.dapr>docker run   -p 8081:8081 --name prometheus  -v C:/Users/chesterychen/.dapr/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml  --web.listen-address=:8081

    访问prometheus UI:http://localhost:8081/,并查询指标

    Dapr仪表盘

    Dapr 提供一个仪表板,用于显示有关 Dapr 应用程序、组件和配置的状态信息。 使用 Dapr CLI 将仪表板在端口8080上启动:

    dapr dashboard

  • 相关阅读:
    记录ViewPager配合Fragment使用中遇到的一个问题
    StringBuffer类的构造方法
    认识StringBuffer类
    Java中增强for循环的用法
    xml解析案例
    XML的序列化(Serializer)
    文件权限之(介绍,更改,扩展)
    保存数据到sdcard中去
    反编译
    后端——框架——容器框架——spring_core——格式化器
  • 原文地址:https://www.cnblogs.com/chenyishi/p/15349146.html
Copyright © 2011-2022 走看看