8 个版本
新版本 0.1.7 | 2024 年 8 月 21 日 |
---|---|
0.1.6 | 2024 年 8 月 10 日 |
0.1.5 | 2024 年 7 月 19 日 |
0.1.4 | 2024 年 6 月 13 日 |
0.1.0 | 2024 年 3 月 15 日 |
#21 in #遥测
每月 177 次下载
355KB
9K SLoC
Micromegas
Micromegas 是一个统一且可扩展的可观测性堆栈。它可以帮助您收集和查询日志、指标和跟踪。
lib.rs
:
Micromegas 是一个统一且可扩展的可观测性堆栈。它可以帮助您收集和查询日志、指标和跟踪。
非常高层次的架构
┌─────────────────┐
│ rust application│──────▶
└─────────────────┘ ┌─────────┐ ┌───────┐ ┌─────────┐ ┌──────────┐
│ingestion│────▶│pg & S3│◀────│analytics│◀────│python API│
┌─────────────────┐ └─────────┘ └───────┘ └─────────┘ └──────────┘
│ unreal engine │──────▶
└─────────────────┘
Rust 仪表化
对于 Rust 应用程序,使用 micromegas::tracing 以最小开销。默认情况下还启用了与 tokio tracing 的日志互操作性。
虚幻仪表化
MicromegasTracing
应该添加到虚幻的 Core 模块,MicromegasTelemetrySink
可以添加到游戏或高级插件中。请参阅 https://github.com/madesroches/micromegas/tree/main/unreal 以获取实现细节。已在多个平台上的编辑器、客户端和服务器构建中进行了测试。
遥测摄取服务器
https://github.com/madesroches/micromegas/blob/main/rust/telemetry-ingestion-srv/src/main.rs
分析服务器
https://github.com/madesroches/micromegas/blob/main/rust/analytics-srv/src/main.rs
Lakehouse 守护进程
https://github.com/madesroches/micromegas/blob/main/rust/telemetry-admin-cli/src/telemetry_admin.rs (带有 crond
参数)
Python API
https://pypi.ac.cn/project/micromegas/
本地开发者配置
为了测试目的,您可以在您的本地工作站上运行整个堆栈。
环境变量
MICROMEGAS_DB_USERNAME
和MICROMEGAS_DB_PASSWD
:由数据库配置脚本使用export MICROMEGAS_TELEMETRY_URL=https://127.0.0.1:9000
export MICROMEGAS_SQL_CONNECTION_STRING=postgres://{uname}:{passwd}@localhost:5432
export MICROMEGAS_OBJECT_STORE_URI=file:///some/local/path
-
克隆 GitHub 仓库
git clone https://github.com/madesroches/micromegas.git
-
启动本地 PostgreSQL 实例(需要 Docker 和 Python)
初始化环境变量
> cd micromegas/local_test_env/db
> ./run.py
- 在新 shell 中,启动摄取服务器
> cd micromegas/rust
> cargo run -p telemetry-ingestion-srv -- --listen-endpoint-http 127.0.0.1:9000
- 在新 shell 中,启动分析服务器
> cd micromegas/rust
> export MICROMEGAS_TELEMETRY_URL=https://127.0.0.1:9000
> cargo run -p analytics-srv
- 在新 shell 中,启动守护进程
> cd micromegas/rust
> export MICROMEGAS_TELEMETRY_URL=https://127.0.0.1:9000
> cargo run -p telemetry-admin -- crond
- 在 Python 解释器中,查询分析服务
# local connection test
import datetime
import micromegas
BASE_URL = "https://127.0.0.1:8082/"
client = micromegas.client.Client(BASE_URL)
now = datetime.datetime.now(datetime.timezone.utc)
begin = now - datetime.timedelta(days=1)
end = now
sql = """
SELECT *
FROM log_entries
ORDER BY time DESC
LIMIT 10
;"""
client.query_view("log_entries", "global", begin, end, sql)
依赖项
~98MB
~2M SLoC