12 个稳定版本
1.1.3 | 2024年3月5日 |
---|---|
1.1.2 | 2023年5月17日 |
1.1.1 | 2023年4月7日 |
1.0.7 | 2023年3月5日 |
1.0.2 | 2022年11月30日 |
#4 在 #dashboard 排名中
14KB
198 行
Axum Analytics
一个轻量级的 API 分析解决方案,包含仪表板。
入门指南
1. 生成 API 密钥
前往 https://apianalytics.dev/generate,点击一次即可生成您的唯一 API 密钥。此密钥用于监控您的 API 服务器,应私密存储。它还用于查看您的 API 分析仪表板和数据。
2. 将中间件添加到您的 API
将我们的轻量级中间件添加到您的 API。几乎所有处理都由我们的服务器完成,因此对您 API 的性能影响最小。
cargo add axum-analytics
use axum::{
routing::get,
Json, Router,
};
use serde::Serialize;
use std::net::SocketAddr;
use tokio;
use axum_analytics::Analytics;
#[derive(Serialize)]
struct JsonData {
message: String,
}
async fn root() -> Json<JsonData> {
let json_data = JsonData {
message: "Hello World!".to_string(),
};
Json(json_data)
}
#[tokio::main]
async fn main() {
let app = Router::new()
.layer(Analytics::new(<API-KEY>)) // Add middleware
.route("/", get(root));
let addr = SocketAddr::from(([127, 0, 0, 1], 8080));
axum::Server::bind(&addr)
.serve(app.into_make_service())
.await
.unwrap();
}
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
) - 创建新的 Pull Request
依赖项
~11–23MB
~329K SLoC