#rocket-web #web-apps #analytics #rocket #dashboard #middleware #rocket-framework

rocket-analytics

为 Rocket 网页应用程序提供监控和分析

1 个稳定版本

1.1.0 2023 年 5 月 17 日

#2321 in 网页编程

MIT 许可证

12KB
135

Rocket Analytics

一个轻量级的 API 分析解决方案,包括仪表板。

入门指南

1. 生成 API 密钥

访问 https://apianalytics.dev/generate 以一键生成您独特的 API 密钥。此密钥用于监控您的 API 服务器,应私下存储。它也是查看您的 API 分析仪表板和数据所必需的。

2. 将中间件添加到您的 API

将我们的轻量级中间件添加到您的 API。几乎所有的处理都由我们的服务器处理,因此对您的 API 性能的影响最小。

cargo add rocket-analytics
#[macro_use]
extern crate rocket;
use rocket::serde::json::Json;
use rocket_analytics::Analytics;
use serde::Serialize;

#[derive(Serialize)]
pub struct JsonData {
    message: String,
}

#[get("/")]
fn root() -> Json<JsonData> {
    let data = JsonData {
        message: "Hello World".to_string(),
    };
    Json(data)
}

#[launch]
fn rocket() -> _ {
    rocket::build()
        .mount("/", routes![root])
        .attach(Analytics::new(<API-KEY>))
}

3. 查看您的分析

您的 API 现在将记录并存储所有有效路由上的传入请求数据。您可以使用以下两种方法查看记录的数据

  1. 通过我们的仪表板上的可视化统计
  2. 直接通过我们的数据 API

您可以在多个 API 中使用相同的 API 密钥,但所有数据都将显示在同一个仪表板上。我们建议为每个需要分析的其他 API 服务器生成一个新的 API 密钥。

仪表板

访问 https://apianalytics.dev/dashboard 并粘贴您的 API 密钥以访问您的仪表板。

演示: https://apianalytics.dev/dashboard/demo

Dashboard

数据 API

所有请求的记录数据都可以通过我们的 REST API 访问。只需在头部设置您的 API 密钥为 https://apianalytics-server.com/api/data 并发送一个 GET 请求到 X-AUTH-TOKEN

Python
import requests

headers = {
 "X-AUTH-TOKEN": <API-KEY>
}

response = requests.get("https://apianalytics-server.com/api/data", headers=headers)
print(response.json())
Node.js
fetch("https://apianalytics-server.com/api/data", {
  headers: { "X-AUTH-TOKEN": <API-KEY> },
})
  .then((response) => {
    return response.json();
  })
  .then((data) => {
    console.log(data);
  });
cURL
curl --header "X-AUTH-TOKEN: <API-KEY>" https://apianalytics-server.com/api/data
参数

您可以通过在请求中提供 URL 参数来过滤您的数据。

  • date - 指定请求发生的特定日期 (YYYY-MM-DD)
  • dateFrom - 指定请求发生的日期范围的下限 (YYYY-MM-DD)
  • dateTo - 指定请求发生的日期范围的上限(YYYY-MM-DD
  • ipAddress - 客户端的 IP 地址字符串
  • status - 响应的整数状态码
  • location - 客户端的两位位置代码

示例

curl --header "X-AUTH-TOKEN: <API-KEY>" https://apianalytics-server.com/api/data?dateFrom=2022-01-01&dateTo=2022-06-01&status=200

监控(即将推出)

即将推出可选的 API 监控功能。我们的服务器将定期ping您的 API 端点以监控正常运行时间和响应时间。您还可以订阅当您的端点出现问题时发送的电子邮件警报。

Monitoring

数据和安全性

所有数据都安全存储,符合欧盟通用数据保护条例(GDPR)。

对于您 API 的任何请求,记录的数据仅限于

  • 客户端请求的路径
  • 客户端 IP 地址
  • 客户端操作系统
  • 客户端浏览器
  • 请求方法(GET、POST、PUT 等)
  • 请求时间
  • 状态码
  • 响应时间
  • API 主机名
  • API 框架(FastAPI、Flask、Express 等)

收集的数据仅用于填充您的分析仪表板。所有存储的数据都是匿名的,API 密钥是您与已记录的请求数据之间的唯一联系。如果您丢失了 API 密钥,您将无法访问您的 API 分析。

数据删除

您可以在任何时候通过访问 https://apianalytics.dev/delete 并输入您的 API 密钥,删除与您的 API 密钥相关的所有存储数据。

API 密钥及其相关的 API 请求数据将在 6 个月不活动后删除。

贡献

欢迎贡献、问题和功能请求。

  • Fork 它 (https://github.com/tom-draper/api-analytics)
  • 创建您的功能分支 (git checkout -b my-new-feature)
  • 提交您的更改 (git commit -am 'Add some feature')
  • 推送到分支 (git push origin my-new-feature)
  • 创建一个新的 Pull Request

依赖项

~21–57MB
~1M SLoC