14 个稳定版本
1.1.2 | 2023年5月17日 |
---|---|
1.1.1 | 2023年4月7日 |
1.0.10 | 2023年3月7日 |
1.0.8 | 2023年1月25日 |
1.0.4 | 2022年11月30日 |
#1062 in 网页编程
13KB
174 行
Actix Analytics
一个轻量级 API 分析解决方案,包括仪表盘。
入门指南
1. 生成 API 密钥
前往 https://apianalytics.dev/generate 通过一键生成您独特的 API 密钥。此密钥用于监控您的 API 服务器,并应私密存储。它还用于查看您的 API 分析仪表盘和数据。
2. 将中间件添加到您的 API
将我们的轻量级中间件添加到您的 API 中。几乎所有处理都由我们的服务器完成,因此对您的 API 性能的影响最小。
cargo add actix-analytics
use actix_web::{get, web, Responder, Result};
use serde::Serialize;
use actix_analytics::Analytics;
#[derive(Serialize)]
struct JsonData {
message: String,
}
#[get("/")]
async fn index() -> Result<impl Responder> {
let json_data = JsonData {
message: "Hello World!".to_string(),
};
Ok(web::Json(json_data))
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
use actix_web::{App, HttpServer};
HttpServer::new(|| {
App::new()
.wrap(Analytics::new(<API-KEY>)) // Add middleware
.service(index)
})
.bind(("127.0.0.1", 8080))?
.run()
.await
}
3. 查看您的分析
您的 API 现在将记录并存储所有有效路由上的传入请求数据。您可以使用以下两种方法查看已记录的数据
- 通过我们的仪表盘上的可视化和统计数据
- 通过直接访问我们的数据 API
您可以在多个 API 中使用相同的 API 密钥,但所有数据将显示在同一仪表盘中。我们建议为每个您想进行分析的额外 API 服务器生成一个新的 API 密钥。
仪表盘
前往 https://apianalytics.dev/dashboard 并粘贴您的 API 密钥以访问您的仪表盘。
演示: https://apianalytics.dev/dashboard/demo
数据 API
所有请求的已记录数据可以通过我们的 REST API 访问。只需将 API 密钥设置在头部 https://apianalytics-server.com/api/data
作为 X-AUTH-TOKEN
发送 GET 请求。
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端点以监控正常运行时间和响应时间。您可以订阅可选的电子邮件警报,在端点故障时通知您。
数据和安全性
所有数据均安全存储,符合欧盟通用数据保护条例(GDPR)。
对于对您的API的任何请求,记录的数据限于以下内容
- 客户端请求的路径
- 客户端IP地址
- 客户端操作系统
- 客户端浏览器
- 请求方法(GET、POST、PUT等)
- 请求时间
- 状态码
- 响应时间
- API主机名
- API框架(FastAPI、Flask、Express等)
收集的数据仅用于填充您的分析仪表板。所有存储的数据都是匿名的,API密钥是您与记录的请求数据之间唯一的联系。如果您丢失了API密钥,您将无法访问您的API分析。
数据删除
您可以在任何时候通过访问https://apianalytics.dev/delete并输入您的API密钥来删除与您的API密钥关联的所有存储数据。
API密钥及其关联的API请求数据将在6个月不活跃后删除。
贡献
欢迎贡献、问题和功能请求。
- 分叉它(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
) - 创建新的拉取请求
依赖关系
~18-33MB
~576K SLoC