目录

moonopenmetrics

CI

moonopenmetrics 是一个纯 MoonBit 编写的 OpenMetrics 1.0 文本处理库。 它可以把指标文本解析为类型化文档,检查跨行语义约束,并输出稳定的规范化文本。 项目不依赖网络服务或后台线程,可用于服务端工具、CLI、测试夹具和数据转换流程。

主要功能

  • 解析 HELPTYPEUNIT、样本、时间戳、exemplar 和 EOF
  • 建模 counter、gauge、histogram、summary、info、state-set 等指标族
  • 检查重复序列、后缀、累计桶、计数、时间戳和 exemplar 等语义规则
  • 以稳定顺序重新编码 OpenMetrics 文本
  • 合并、筛选并汇总多个指标文档
  • 提供显式的内存 Registry,便于构造和导出指标快照
  • 提供 validatenormalize 命令行示例
  • 支持 wasm、wasm-gc、JavaScript 和 native 后端

安装

moon add JYPeng487/moonopenmetrics

moon.pkg 中导入:

import {
  "JYPeng487/moonopenmetrics",
}

最小示例

fn main {
  let input =
    #|# TYPE requests counter
    #|requests_total{method="GET"} 3
    #|# EOF
    #|
  match @moonopenmetrics.parse(input) {
    Err(error) => println(error.to_string())
    Ok(document) => {
      let report = @moonopenmetrics.validate(document)
      println("errors=\{report.error_count}")
      println(@moonopenmetrics.encode(document))
    }
  }
}

命令行示例

运行内置示例:

moon run cmd/main

也可以分别执行校验和规范化:

moon run cmd/main -- validate
moon run cmd/main -- normalize
moon run cmd/main -- help

验证

moon fmt --check
moon info --target all
moon check --target all --deny-warn
moon test --target all --deny-warn
moon build --target all
moon run cmd/main
moon package

GitHub Actions 会执行同样的格式、接口、检查、测试、构建、示例和打包流程。

完整文档

本文件用于 GitHub 和 GitLink 的仓库首页展示。 README.mbt.md 是完整文档,其中的 mbt check 代码块会被 MoonBit 工具链检查和测试;详细兼容范围见 docs/compatibility.md

许可证

项目采用 Apache-2.0 许可证。 实现来源、规范参考和与相关 MoonBit 项目的功能边界见完整文档。

关于

纯 MoonBit 实现的 OpenMetrics 1.0 文本解析、规范化编码、语义校验与内存指标注册库。

165.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号