#metrics #iot #projects #controller #collect #mozilla #integration

nightly metrics-controller

Metrics Controller 是一个用于收集 Mozilla IOT 项目的指标的项目

7 个版本

使用旧的 Rust 2015

0.1.6 2016 年 9 月 23 日
0.1.5 2016 年 7 月 22 日
0.1.4 2016 年 5 月 16 日

#997嵌入式开发

自定义许可证

265KB
6K SLoC

JavaScript 4.5K SLoC // 0.2% comments Rust 1.5K SLoC // 0.1% comments Shell 17 SLoC // 0.2% comments Pan 3 SLoC

metrics_controller

Build Status

  • |cargo test| -- 构建 library 和主要目标进行测试,运行单元测试
  • |RUST_TEST_THREADS=1 cargo test --features integration| -- 构建 library 和主要目标进行测试,串行运行集成测试
  • |cargo clean| -- 清理目标
  • |cargo build| -- 只构建 library
  • |cargo doc| -- 创建 'rustdoc' 文档

工具链

运行 |multirust default nightly| 然后 |multirust override nightly-2016-09-21| 确保您有正确的 rust 版本。

针对 Mac OS X 的额外步骤

指标库需要最新的 openssl 库。为了确保您有正确的库,我们建议您安装 brew 并运行

brew install openssl
source tools/mac-os-x-setup.source.sh

Raspberry Pi

为 Raspberry Pi 交叉编译指标库

docker run -it russnicoletti/metrics_controller-pi
cd metrics_controller
cargopi build

日志记录

指标库使用 env_logger 包进行日志记录功能。该包的两个显著特点是

  • 日志消息写入 stderror
  • 使用环境变量来确定日志级别

指定日志级别的环境变量是 CD_METRICS_LOG。例如,在运行示例程序时将日志级别设置为 info,命令行将是

CD_METRICS_LOG=info target/debug/examples/main

这将为指标库和所有由指标库使用的 rust 模块启用 info 级别日志记录。要限制日志记录为指标库消息,请使用 env_logger 过滤机制并指定包含在指标库日志消息中的前缀 -- CD-METRICS

CD_METRICS_LOG=info/CD-METRICS target/debug/examples/main

并且,当然,将日志消息重定向到文件

CD_METRICS_LOG=info/CD-METRICS target/debug/examples/main 2> log

JavaScript 实现

Nodejs 模块

cd-metrics Nodejs 模块是 CD 指标库的 Nodejs 实现。请参阅 ./examples/node_demo.js 了解 cd-metrics 模块的示例用法。

基于浏览器的模块

./dist/metrics.js 是基于浏览器的 CD 指标库的 JavaScript 实现。请参阅 ./examples/index.html 以了解示例用法。

测试

单元测试

运行 cargo test

集成测试

要运行集成测试

1.  Install chai: |npm install chai|
2.  Install mocha: |npm install mocha|
3.  Load test/metrics_test.html in a browser.  

请注意,测试可能需要最多 3 分钟才能执行,因为它正在验证数据是否已收到服务器。

C接口

有一个 C 接口,可以用于 C 和 Java 应用程序。

要使用此功能

  1. 运行 |cargo build|
  2. 这将创建一个位于 ./target/debug/libmetrics_controller.dylib(Mac)、.so(Linux)或 .dll(Windows)下的目标。
  3. 请参阅 ./examples/ffi_test.c 了解如何调用库以及如何运行示例的说明。

依赖关系

约 12MB
约 258K SLoC