将RingServer中的日志导出为infloxDB时间序列

ringserverstats的Python项目详细描述


RingServerStats

分析ringserver报告,计算统计数据并存储在infloxdb中。

ringserver activity

ringserver statistics by day

ringserver statistics by month

安装

RingServerStats作为一个通用轮分布在Pypihttps://pypi.org上。

    $ pip install ringserverstats

infloxDB配置

这个程序将填充2个测量值。您应该为这些配置一个数据库,并为用户配置写权限。

准备数据库

首先,创建数据库、用户和保留策略。

createdatabaseringserverdbcreateuserringserverwithpassword'ringserverer'grantwriteonringserverdbtoringservergrantreadonringserverdbtoringservercreateretentionpolicyrp_ringservereventsonringserverduration1wreplication1createretentionpolicyrp_ringserverstatsonringserverduration520wreplication1

用法

要正常工作,此程序需要设置以下环境变量:

  • INFLUXDB_HOST:infloxdb服务器的主机名或地址
  • INFLUXDB_PORT:infloxdb服务器的端口号
  • INFLUXDB_USER:要向其进行身份验证的infloxdb用户
  • INFLUXDB_PASS:要验证的密码
  • INFLUXDB_DB:包含度量的数据库名称
  • INFLUXDB_VERIFY_SSL:设置为yesno以验证ssl连接
  • INFLUXDB_SSL:连接应该转到https吗?
$ ringserstats txlogs.log

解释

来自ringserver的tx日志是适合时间序列数据库的度量。其思想是解析日志,如下面的示例所示,并生成值以插入infloxdb timeseries数据库。

可以将文件grafana-dashboard.json导入grafana以可视化此时间序列。

infloxDB中使用的标记:

showtagkeysfromringservereventsshowtagkeysfromringserverstats

事件

RingServerEvents度量值有几个标记:

  • 网络、电台、位置、频道:请求了哪些数据
  • geohash:geohash格式的客户端位置
  • hosthash:客户端IP的哈希(用于关联客户端请求)
  • 城市:英文城市名

分组和下采样

由于长期存储事件的相关性不大,ringserverstats度量按天、按主机、按网络、站点、位置和通道对所有事件进行分组。 上面描述的保留策略将管理数据存储在infloxdb中的时间。

为了实现下采样,我们使用infloxdb的连续查询。这是创建连续查询的示例:

createcontinuousquery"cq_ringserverstats_by_day"onresifresamplefor3dbeginselectsum("bytes")asbytesinto"rp_ringserverstats"."ringserverstats"from"rp_ringserverevents"."ringserverevents"groupbytime(1d),network,station,location,channel,city,hosthash,geohashend

此查询每天(从group by time(1d)指令)执行,并将在过去的3天(指令resample for 3 d)重新采样,生成3个条目(每天一个)。已覆盖现有条目。

infloxdb连续查询的文档如下:https://docs.influxdata.com/influxdb/v1.7/query_language/continuous_queries/

许可证

ringserverstats根据gpl v3或更高版本的条款分发。请参阅许可证文件。

构建

python3 setup.py sdist bdist_wheel

测试

tox

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无JPA的纯Hibernate ORM java SpringBoot配置   安卓会生成一组唯一的java数字   java我的自定义阵列列表每次启动时都会崩溃我不确定为什么会一直崩溃   Java继承;将子类传递给超类的抽象方法   java从没有if语句的数组中获取instanceof type   java中使用对象的温度转换   存储库接口的JavaSpringDataMongoDBeanXML配置   java JAXWS为iBM websphere、iBM web服务客户端添加寻址   数组试图返回Java中两个对象的面积之和   apache Spark java:columnNameOfCorruptRecord和badRecordsPath在加载csv时不工作   java无法创建。txt文件   java Hibernate与MySQL插入查询不一致   不考虑java Hazelcast分布式地图的最大大小   bash Java如何在父进程中设置环境变量