Flutter监控与指标收集插件pip_services4_prometheus的使用

Pip.Services Logo
Prometheus 组件用于 Dart #

此模块是 Pip.Services 多语言微服务工具包的一部分。

该模块包含在 Prometheus 服务中工作的计数器组件。PrometheusCounters 和 PrometheusMetricsService 组件允许你通过 PushGateway 以客户端模式工作,也可以作为服务。

该模块包含以下包:

  • Build - 默认工厂,用于构建组件。
  • Count - 计数器(指标)组件,通过 PushGateway 将数据发送到 Prometheus。
  • Services - 服务组件,用于通过 Prometheus 服务读取计数器(指标)。

快速链接:

使用 #

在你的 `pubspec.yaml` 文件中添加以下内容:
dependencies:
  pip_services4_prometheus: version

现在你可以从命令行安装包:

pub get

开发 #

你需要安装以下前提条件:
  • Dart SDK 3
  • Visual Studio Code 或其他你选择的 IDE
  • Docker

安装依赖项:

pub get

运行自动化测试:

pub run test

生成 API 文档:

./docgen.ps1

在提交更改之前,运行容器化构建和测试:

./build.ps1
./test.ps1
./clear.ps1

联系人 #

该库由以下人员创建和维护:
  • Sergey Seroukhov
  • Levichev Dmitry

文档由以下人员编写:

  • Levichev Dmitry
  • Mark Makarychev
```

示例代码:example/main.dart

// 导入必要的包
import 'package:pip_services4_components/pip_services4_components.dart';
import 'package:pip_services4_prometheus/pip_services4_prometheus.dart';

void main() async { // 配置 Prometheus 监控服务 var restConfig = ConfigParams.fromTuples([ ‘connection.protocol’, ‘http’, ‘connection.host’, ‘localhost’, ‘connection.port’, 3000 ]);

// 创建 PrometheusCounters 和 PrometheusMetricsController 实例 PrometheusMetricsController controller; PrometheusCounters counters;

controller = PrometheusMetricsController(); counters = PrometheusCounters();

// 配置控制器 controller.configure(restConfig);

// 设置上下文信息 var contextInfo = ContextInfo(); contextInfo.name = ‘Test’; contextInfo.description = ‘This is a test container’;

// 设置引用 var references = References.fromTuples([ Descriptor(‘pip-services’, ‘context-info’, ‘default’, ‘default’, ‘1.0’), contextInfo, Descriptor(‘pip-services’, ‘counters’, ‘prometheus’, ‘default’, ‘1.0’), counters, Descriptor( ‘pip-services’, ‘metrics-controller’, ‘prometheus’, ‘default’, ‘1.0’), controller ]);

// 设置引用 counters.setReferences(references); controller.setReferences(references);

// 打开计数器和服务 await counters.open(null); await controller.open(null);

// 收集一些指标 counters.incrementOne(‘test.counter1’); // 增加一个计数器 counters.stats(‘test.counter2’, 2); // 添加统计数据 counters.last(‘test.counter3’, 3); // 设置最后值 counters.timestampNow(‘test.counter4’); // 记录当前时间戳

// 所有指标可以在 http://localhost:3000/metrics 访问 // 配置 Prometheus 服务以轮询此主机 // …

// 关闭计数器和服务 await controller.close(null); await counters.close(null); }


更多关于Flutter监控与指标收集插件pip_services4_prometheus的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter监控与指标收集插件pip_services4_prometheus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


pip_services4_prometheus 是一个用于在 Flutter 应用中集成 Prometheus 监控和指标收集的插件。Prometheus 是一个开源的系统监控和警报工具包,广泛用于监控微服务架构中的各种指标。

安装插件

首先,你需要在 pubspec.yaml 文件中添加 pip_services4_prometheus 插件的依赖:

dependencies:
  pip_services4_prometheus: ^0.0.1

然后运行 flutter pub get 来安装依赖。

初始化 Prometheus 客户端

在使用 pip_services4_prometheus 之前,你需要初始化 Prometheus 客户端。以下是一个简单的初始化示例:

import 'package:pip_services4_prometheus/pip_services4_prometheus.dart';

void main() {
  var prometheus = PrometheusClient();
  prometheus.configure(ConfigParams.fromTuples([
    'connection.protocol', 'http',
    'connection.host', 'localhost',
    'connection.port', 9090,
  ]));

  prometheus.open(null).then((_) {
    print('Prometheus client initialized');
  });
}

收集和暴露指标

pip_services4_prometheus 提供了多种方法来收集和暴露指标。以下是一些常见的用法:

1. 计数器 (Counter)

计数器用于记录某些事件的发生次数。

var counter = prometheus.getCounter('my_counter', 'A simple counter');
counter.increment();

2. 计量器 (Gauge)

计量器用于记录当前的值,例如内存使用量。

var gauge = prometheus.getGauge('my_gauge', 'A simple gauge');
gauge.set(42);

3. 直方图 (Histogram)

直方图用于记录值的分布情况。

var histogram = prometheus.getHistogram('my_histogram', 'A simple histogram');
histogram.observe(3.7);

4. 摘要 (Summary)

摘要用于记录值的分布情况,并提供百分位数。

var summary = prometheus.getSummary('my_summary', 'A simple summary');
summary.observe(3.7);

暴露指标

Prometheus 通过 HTTP 端点来抓取指标。你可以使用 PrometheusMetricsService 来暴露这些指标:

var metricsService = PrometheusMetricsService();
metricsService.configure(ConfigParams.fromTuples([
  'connection.protocol', 'http',
  'connection.host', 'localhost',
  'connection.port', 8080,
]));

metricsService.open(null).then((_) {
  print('Metrics service started');
});

配置 Prometheus

在 Prometheus 的配置文件中,添加以下内容来抓取 Flutter 应用的指标:

scrape_configs:
  - job_name: 'flutter_app'
    static_configs:
      - targets: ['localhost:8080']
回到顶部