用于从ELK日志中统计使用情况的包。
项目描述
Vuakhter
Vuakhter是一个验证工具,用于测试API是否符合我们的API指南。但它也可以通过其日志生成Web应用程序的统计数据。
工作原理
Vuakhter扫描指定期间的访问日志,通过路径前缀过滤日志条目,并将每个条目传递给生成统计。
基类 AccessLog
返回日志条目的迭代器。类 ElasticAccessLog
扫描Elastic索引中的日志条目。
StatisticsMetrics
获取 AccessEntry
记录并形成统计数据数组的。 StatisticsMetrics.report() -> str
返回指标统计报告。
HttpAnalyzer
使用 access_log: AccessLog
和 StatisticsMetrics
数组。
在主脚本 vuakhter
中,只有一个指标 SchemaValidatorCounter
传递给 HttpAnalyzer
。它使用 request_log: RequestLog
验证 API 响应。
类 ElasticRequestLog: RequestLog
通过请求_id 扫描弹性索引请求并返回 RequestEntry
数组。 SchemaValidatorCounter
检查所有响应体并统计有效的 API 调用。
安装
pip install vuakhter
用法
vuakhter [--es-user ES_USER] [--es-pass ES_PASS] [--es-host ES_HOST] [--es-port ES_PORT
[--start-date START_DATE] [--end-date END_DATE] prefixes [prefixes ...]
默认情况下,如果未指定,end_date 是当前日期和时间。start_date 默认为 end_date 的前一天。
所有连接参数都可以在 .env 文件中指定。
ES_USER=elastic ES_PASS=pasword ES_HOST=localhost vuakhter /api/
在代码中使用
import datetime
from elasticsearch import Elasticsearch
from vuakhter.analyzer import HttpAnalyzer
from vuakhter.kibana.access_log import ElasticAccessLog
from vuakhter.metrics.counters import ComplexCounter
elastic = Elasticsearch()
access_log = ElasticAccessLog(index_pattern='filebeat-*', client=elastic)
http_analyzer = HttpAnalyzer(access_log=access_log)
http_analyzer.add_metrics(ComplexCounter())
end_date = datetime.datetime.now()
start_date = end_date - datetime.timedelta(days=1)
http_analyzer.analyze(start_date, end_date)
for metric in http_analyzer.metrics:
metric.finalize()
print(metric.report())
贡献
我们希望您为我们的项目做出贡献。这很简单
- 创建一个带有您发现的错误或提议的问题。等待维护者的批准。
- 创建一个拉取请求。确保所有检查都是绿色的。
- 如果有,修复审查评论。
- 做得好。
以下是一些有用的提示
- 您可以使用
make check
运行所有检查和测试。请在 TravisCI 做之前执行此操作。 - 我们使用 BestDoctor python styleguide。
- 我们尊重 Django CoC。做软的,而不是垃圾。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
此版本没有可用的源分发文件。请参阅 生成分发存档的教程。
构建分发
vuakhter-0.0.5-py3-none-any.whl (23.5 kB 查看哈希值)