如何在 Tomcat 上的 Spring REST 应用程序 运行 上找到未使用的端点?

How to find unused endpoints on Spring REST application running on Tomcat?

我们在 Tomcat 上 运行 我们的 Spring 应用程序,并且在一段时间内我们已经向我们的应用程序添加了多个 REST 端点。我们现在想要 trim 关闭它并删除我们的 GUI 不再使用的所有未使用的端点。

我们确实使用 Splunk,但它只会提供 Tomcat 的 localhost_access 文件上的日志聚合器对活动端点的命中数。我们想找到命中数为 0 的端点。

最直接的方法是编写某种 python 脚本,从 Tomcat 开始复制数据,并获取所有终点(或手动输入)。然后将它们放入哈希映射中,然后在最近几个月的 Tomcat 服务器日志中查看本地主机访问文件,在满足相应端点时递增计数器。然后打印出这个hash map中所有值为0的键。

以上是可行的方法,还是有更简单的方法?

一种查找未使用的端点的方法,转到 access.log,检查所有端点都被访问的几天日志。您将了解哪些端点在一段时间内未使用。

Splunk 本质上是一个搜索引擎,与任何其他搜索引擎一样,无法找到不存在的内容。没有命中的端点在 Splunk 中没有数据,因此不会出现在搜索结果中。

解决此类问题的通常方法是从已知对象列表开始,然后减去 Splunk 找到的对象。结果是未使用对象的列表。您用哈希映射的想法自己触及了这个概念。

创建一个包含所有端点列表的 CSV 文件。我称之为 endpoints.csv。然后在这样的搜索中使用它:

index=foo endpoint=* NOT [ inputlookup endpoint.csv | format ]