datasette-events-forward 由 datasette 提供

星标

README 源代码

datasette-events-forward

PyPI Changelog Tests License

将 Datasette 事件转发到另一个实例

安装

在 Datasette 所在的同一环境中安装此插件。

datasette install datasette-events-forward

配置

如下配置此插件

{
    "plugins": {
        "datasette-events-forward": {
            "api_token": "***",
            "api_url": "https://stats.datasette.cloud/data/-/create",
            "instance": "localhost"
        }
    }
}

然后,该插件将收集所有事件并将它们转发到指定的实例,将它们添加到名为 datasette_events 的表中,如果该表不存在则会创建它。

instance 键可用于区分报告给同一后端系统的不同实例。事件通过 ULID 进行标识,以确保即使在不同实例之间也是唯一的。

事件以最多 10 个为一批进行转发,发送频率不超过每 10 秒一次。

配置设置完整列表

  • api_url:要将事件转发到的 Datasette 实例的写入 API URL。
  • api_token:发送事件时使用的 API 令牌。使用 {"$env": "FORWARD_TOKEN"}FORWARD_TOKEN 环境变量中读取令牌。
  • instance:一个字符串,用于标识发送事件的实例。

api_url 可以是用于插入行的 https://datasette.example.com/data/datasette_events/-/insert 端点,也可以是用于创建表并向其中插入行的 https://datasette.example.com/data/-/create 端点。如果表尚不存在,应使用 /-/create 变体;否则使用 /-/insert 变体。

如果使用 /-/insert,您的 API 令牌仅需要 insert-row 权限。对于 /-/create,您还需要 create-table 权限。

以及控制向 Datasette 写入 API 发送事件批次的速率

  • batch_limit:每个批次发送的事件数量,默认为 10。Datasette 写入 API 默认限制为 100 行,因此应将其设置为小于该值。
  • max_rate:在指定时间段内发送的最大交付 HTTP 请求数量,默认为 1。
  • time_period:速率限制的时间段,以秒为单位,默认为 10。

开发

要在本地设置此插件,请首先检出代码。然后创建一个新的虚拟环境

cd datasette-events-forward
python3 -m venv venv
source venv/bin/activate

现在安装依赖项和测试依赖项

pip install -e '.[test]'

运行测试

pytest