1个不稳定版本
0.1.0 | 2022年8月18日 |
---|
#14 在 #grafana
5MB
20K SLoC
Grafana Do
关于
Grafana Do 允许您在Grafana或其插件的关键事件中运行自己的脚本。脚本内置了对丰富的Grafana API的访问。
团队
技术概述
您还可以在 Excalidraw 中打开 assets/grafana-do-overview.excalidraw
并从这里继续工作。
开发
首先,获取源代码副本
git clone [email protected]:grafana/hackathon-2022-08-grafana-do.git
系统依赖项
开发
cargo build
将构建运行器,输出放置在target
目录中。cargo check
将检查lint问题cargo run
将构建并运行运行器
构建Docker镜像
docker build.
make publish
可以用来构建适合发布到Docker Hub的'multiarch'部署镜像。
使用Flakes进行系统依赖项和构建/运行
您可能想使用nix和nix flakes来管理依赖项。这消除了我们系统之间的差异,并使得有用的共享工具变得可用。
如果尚未安装,请以推荐的方式 安装nix。
安装后,在macOS上使用flakes
-
安装flakes:
nix-env -.nixFlakes
-
修改
~/.config/nix/nix.conf
以包含以下行experimental-features = nix-command flakes keep-derivations = true keep-outputs = true
完成上述步骤后,您可以在项目中使用nix命令进行测试。
nix build
在仓库根目录将构建整个项目,留下包含构建产品的result
目录。nix develop
将启动一个带有有用工具的shell。nix run
将运行gdo-runner
运行器。
用法
API
GET /
→ 无令牌确认服务器正在运行POST /execute
→ 提交多部分脚本进行执行,返回脚本的 SHA256 并异步运行。需要在头部包含密钥。POST /challenge
→ 检查令牌是否正确,不进行其他操作
环境变量
目前,存在以下运行时环境变量
export APP_KEY="YOUR_SHARED_SECRET"
export APP_ROOT_PATH="/tmp/wasm-scripts"
export APP_USER="[email protected]"
export APP_ROLE="Admin"
export APP_API_KEY="zjzTah35Tl6bVJfsmg9LCJuIjosdf5ja0="
建议您使用像 .env
或 direnv
这样的工具来管理这些变量。
运行脚本
请参阅 example/README.md 以获取 curl 命令示例,用于测试运行器。
依赖项
~23–37MB
~609K SLoC