欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > asp.net >内容正文

asp.net

Dapr + .NET 实战(八)服务监测

发布时间:2023/12/4 asp.net 85 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Dapr + .NET 实战(八)服务监测 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

服务监测

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

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

工作原理

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

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

Zipkin服务跟踪

Zipkin 是一种开源分布式跟踪系统。它可以将遥测数据进行存储和可视化。Dapr 提供对 Zipkin 的默认支持。我们可以查看Dapr默认配置C:\Users\username\.dapr\config.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 .\BackEnd\bin\Debug\net5.0\BackEnd.dlldapr run --dapr-http-port 3501 --app-port 5001 --app-id frontend dotnet .\FrontEnd\bin\Debug\net5.0\FrontEnd.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 .\BackEnd\bin\Debug\net5.0\BackEnd.dll --metrics-port 9090dapr run --dapr-http-port 3501 --app-port 5001 --app-id frontend dotnet .\FrontEnd\bin\Debug\net5.0\FrontEnd.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: 5sstatic_configs:- targets: ['192.168.43.94:9090','192.168.43.94:9091'] # Replace with Dapr metrics port if not default

通过docker运行prometheus

C:\Users\chesterychen\.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

相关文章:
  • Dapr实战(一) 基础概念与环境搭建

  • Dapr + .NET Core实战(二) 服务调用

  • Dapr + .NET Core实战(三)状态管理

  • Dapr + .NET 实战(四)发布和订阅

  • Dapr + .NET 实战(五)Actor

  • Dapr + .NET 实战(六)绑定

  • Dapr + .NET 实战(七)Secrets

总结

以上是生活随笔为你收集整理的Dapr + .NET 实战(八)服务监测的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。