在Gravitee中收集并使用自定义指标作为策略

时间:2019-09-17 08:17:59

标签: api-management gravitee

我们想在Web API的前面使​​用gravitee作为API网关,但是我们需要能够提供根据特定业务指标进行过滤的计划,该计划是在所有API调用的响应中发送的

例如,假设我们的API在HTTP标头中返回被查询的数据数(就数据库唯一点而言):

> GET /api/my/data

Response:
X-Number-Of-Points: 2456 ## the number of points that were returned
Content-Type: application/json

{
"points":[...]
}

因此,从本质上讲,我想制定以下计划:

  • 每月1.5亿个积分
  • 每月1万个请求或5000万个积分

我看了Gravitee's documentation,但我不确定我们能做到这一点。

似乎他们的“ Policy”插件可能有用,但是我感觉我必须实现整个“从标头中提取nb点,将其存储在db中,然后实现一个Gravitee可以利用该插件查看该特定客户是否已用尽计划”。

也许我没有正确阅读文档,但是我发现,如果Gravitee可以执行速率限制和每月API调用次数计划,那么它应该能够收集整数指标并将其应用于计划吗?

你们在这方面有经验吗?

我并不特别喜欢Gravitee本身,但是从我对API网关前景的有限探索中,它似乎是其余部分中最成熟的(Kong,APIGee等)。如果这个特殊用例可以由另一个免费的APM更好地处理,那么我就开始进行切换。

1 个答案:

答案 0 :(得分:0)

很抱歉在这里迟到了。

在现有的速率限制/配额策略中,您可以为呼叫提供权重(默认情况下,权重= 1)。

据您所见,我唯一看到的区别是,就我所知,权重来自于响应。

我要记住的问题是:如果网关正在调查响应以获取权重,我们应该如何(从网关)管理身份验证问题,这是否意味着计数器没有减少?