NCC Mocha v0.2.0 发布, 新增对 Metrics 的支持

目录

项目简介

Mocha 是一个基于 .NET 开发的 APM 系统,同时提供可伸缩的可观测性数据分析和存储平台。

项目地址:https://github.com/dotnetcore/mocha

注意:使用 git clone --recursive 克隆本仓库以及子模块。

项目进度

目前项目处于早期阶段,已经完成了对 Trace 和 Metrics 的基础支持,可以通过 OTel SDK 上报数据到 Mocha Distributor,然后通过 Grafana 展示。目前仅支持通过 docker-compose 进行简单体验。

v0.2.0 发布内容

  • 支持 OTel Metrics 数据上报
  • 支持通过 Grafana 展示 Metrics 数据

快速体验

在项目根目录下的docker目录中,执行以下命令启动项目:

bash 复制代码
docker-compose up -d

启动成功后,可以看到以下容器:

  • distributor: 提供用于接收 OTLP 数据的 gRPC API
  • query: 提供用于接收查询协议的 HTTP API
  • mysql: 用于存储数据
  • grafana: 用于展示数据

数据的发送

将 SDK 的 OTLP exporter 配置为 http://localhost:4317 即可将数据发送到 distributor。

数据的查询

Trace

配置 Jaeger 数据源

我们实现了支持 Jaeger 查询协议的 API,因此可以直接在 Grafana 中配置 Jaeger 数据源。

访问 http://localhost:3000/ 即可看到grafana的登录页面。用户名和密码都是admin。

登录后,点击左侧的菜单,选择 Data Sources,然后点击 Add data source。

选择 Jaeger。

配置 Jaeger 数据源的 URL 为 http://query:5775/jaeger

点击 Save & Test,如果显示如下信息,则说明配置成功。

如果还没往 distributor 发送过数据,会显示如下警告信息。

Trace 数据的查询

点击左侧的菜单,选择 Explore,然后选择 Jaeger 数据源,即可看到 Trace 数据。

Metrics

配置 Prometheus 数据源

我们实现了支持 PromQL 查询协议的 API,因此可以直接在 Grafana 中配置 Prometheus 数据源。

访问 http://localhost:3000/ 即可看到grafana的登录页面。用户名和密码都是admin。

登录后,点击左侧的菜单,选择 Data Sources,然后点击 Add data source。

选择 Prometheus。

配置 Prometheus 数据源的 URL 为 http://query:5775/prometheus

配置 HTTP Method 为 POST。

点击 Save & Test,如果显示如下信息,则说明配置成功。

Metrics 数据的查询

点击左侧的菜单,选择 Explore,然后选择 Prometheus 数据源,即可看到 Metrics 数据。

点击左侧的菜单,选择 Dashboards,即可创建一个 Dashboard。

选择我们刚刚创建的 Prometheus 数据源。

接下来就可以根据需要添加 Panel,展示 Metrics 数据了。

目前的限制

目前 Mocha 支持的 Prometheus 的查询语法有限,更完整的支持需要等待后续版本。

目前支持的 function 主要有:

abs, absent, histogram_quantile, increase, rate, avg_over_time, min_over_time, max_over_time, sum_over_time, count_over_time, stdvar_over_time, stddev_over_time

目前支持的 aggregation 主要有:

sum, min, max, avg, count, stdvar, stddev, count, count_values, topk, bottomk, quantile

相关推荐
o0向阳而生0o1 小时前
65、.NET 中DllImport的用途
.net·非托管·dllimport
喵叔哟1 小时前
25.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--用户服务接口
微服务·架构·.net
钢铁男儿2 小时前
C# 表达式和运算符(表达式和字面量)
开发语言·c#
林鸿群3 小时前
C#子线程更新主线程UI及委托回调使用示例
开发语言·c#
o0向阳而生0o3 小时前
63、.NET 异常处理
c#·.net·异常处理
SteveDraw6 小时前
C++动态链接库封装,供C#/C++ 等编程语言使用——C++动态链接库概述(总)
开发语言·c++·c#·封装·动态链接库
Kookoos6 小时前
性能剖析:在 ABP 框架中集成 MiniProfiler 实现性能可视化诊断
后端·c#·.net·abp vnext·miniprofiler
zhanshuo7 小时前
5分钟手把手实战:用HTML5基础结构打造你的个人简介页面
.net
界面开发小八哥7 小时前
界面开发框架DevExpress XAF实践:集成.NET Aspire后如何实现数据库依赖?
ui·.net·界面控件·devexpress·ui开发·xaf
zhanshuo7 小时前
5分钟搞定!ASP.NET正则表达式验证控件实战:轻松拦截99%的无效邮箱!
.net