好,开始今天的文章。

今天主要是来说一下怎么可视化来监控你的爬虫的状态。

相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量,当然查询的方式多种多样。今天我来讲一种可视化的方法。

关于爬虫数据在 mongodb 里的版本我写了一个可以热更新配置的版本,即添加了新的爬虫配置以后,不用重启程序,即可获取刚刚添加的爬虫的状态数据。

1.成品图

这个是监控 服务器 网速的最后成果,显示的是下载与上传的网速,单位为M。爬虫的原理都是一样的,只不过将数据存到InfluxDB的方式不一样而已, 如下图。

可以实现对爬虫数量,增量,大小,大小增量的实时监控。

2. 环境

InfluxDb ,是目前比较流行的时间序列数据库;

Grafana ,一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源

Ubuntu

influxdb (pip install influxdb)

Python 2.7

3. 原理

获取要展示的数据,包含当前的时间数据,存到InfluxDb里面,然后再到Grafana里面进行相应的配置即可展示;

4. 安装

4.1 Grafana安装

官方安装指导

安装好以后,打开本地的3000端口,即可进入管理界面,用户名与密码都是 admin 。

4.2 InfulxDb安装

这个安装就网上自己找吧,有很多的配置我都没有配置,就不在这里误人子弟了。

5. InfluxDb简单操作

碰到了数据库,肯定要把增删改查学会了啊, 和sql几乎一样,只有一丝丝的区别,具体操作,大家可以参考官方的文档。

influx 进入命令行

CREATE DATABASE test 创建数据库

show databases 查看数据库

use test 使用数据库

show series 看表

select * from table_test 选择数据

DROP MEASUREMENT table_test 删表

6. 存数据

InfluxDb数据库的数据有一定的格式,因为我都是利用 python 库进行相关操作,所以下面将在python中的格式展示一下:

其中:

measurement, 表名

time,时间

tags,标签

fields,字段

可以看到,就是个列表里面,嵌套了一个字典。其中,对于时间字段,有特殊要求,可以参考这里, 下面是python实现方法:

所以,到这里,如何将爬虫的相关属性存进去呢?以MongoDB为例

那么现在我们已经往数据里存了数据了,那么接下来要做的就是把存的数据展示出来。

7.展示数据

7.1 配置数据源

以admin登录到Grafana的后台后,我们首先需要配置一下数据源。点击左边栏的最下面的按钮,然后点击DATA SOURCES,这样就可以进入下面的页面:

点击ADD DATA SOURCE,进行配置即可,如下图:

其中,name自行设定;Type 选择InfluxDB;url为默认的http://localhost:8086, 其他的因为我前面没有进行配置,所以默认的即可。然后在InfluxDB Details里的填入Database名,最后点击测试,如果没有报错的话,则可以进入下一步的展示数据了;

7.2 展示数据

点击左边栏的+号,然后点击GRAPH

接着点击下图中的edit进入编辑页面:

从上图中可以发现:

中间板块是最后的数据展示

下面是数据的设置项

右上角是展示时间的设置板块,在这里可以选择要展示多久的数据

7.2.1 配置数据

在Data Source中选择刚刚在配置数据源的时候配置的NAME字段,而不是database名。

接着在下面选择要展示的数据。看着就很熟悉是不是,完全是sql语句的可视化。同时,当我们的数据放到相关的字段上的时候,双击,就会把可以选择的项展示出来了,我们要做的就是直接选择即可;

设置右上角的时间,则可以让数据实时进行更新与展示

因为下面的配置实质就是sql查询语句,所以大家按照自己的需求,进行选择配置即可,当配置完以后,就可以在中间的面板里面看到数据了。

8. 总结

到这里,本篇文章就结束了。其中,对于Grafana的操作我没有介绍的很详细,因为本篇主要讲的是怎么利用这几个 工具 完成我们的任务。

同时,里面的功能确实很多,还有可以安装的插件。我自己目前还是仅仅对于用到的部分比较了解,所以大家可以查询官方的或者别的教程资料来对Grafana进行更深入的了解,制作出更加好看的可视化作品来。

文末知识点摘要①:sql中dateiff函数的用法

DATEDIFF

返回跨两个指定日期的日期和时间边界数。

一、 语法

DATEDIFF ( datepart , startdate , enddate )

二、参数

datepart

是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server? 识别的日期部分和缩写。

日期部分 缩写

year yy, yyyy

quarter qq, q

Month mm, m

dayofyear dy, y

Day dd, d

Week wk, ww

Hour hh

minute mi, n

second ss, s

millisecond ms

startdate

是计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。

如 果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后 两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

enddate

是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

三、返回类型

integer

四、用法

此函数计算两个指定日期之间日期部分的数目。结果为日期部分中等于(date2 - date1)的有符号的整数值。

当结果不是日期部分的偶数倍时,DATEDIFF 将被截断而不是被舍入。

当使用 day 作为日期部分时,DATEDIFF 返回两个指定的时间之间(包括第二个日期但不包括第一个日期)的午夜数。

当使用 month 作为日期部分时,DATEDIFF 返回两个日期之间(包括第二个日期但不包括第一个日期)出现的月的第一天的数目。

当使用 week 作为日期部分时,DATEDIFF 返回两个日期(包括第二个日期但不包括第一个日期)之间星期日的数目。

对于更小的时间单位存在溢出值:

milliseconds 24 天

seconds 68 年

minutes 4083 年

others 没有溢出限制

如果超出这些限制,此函数将返回溢出错误。

五、标准和兼容性

SQL/92 Transact-SQL 扩展。

SQL/99 Transact-SQL 扩展。

Sybase 与 Adaptive Server Enterprise 兼容。

六、示例

下面的语句返回 1 :

select datediff( hour, ''4:00am'', ''5:50am'' )

下面的语句返回 102 :

select datediff( month, ''1987/05/02'', ''1995/11/15'' )

下面的语句返回 0 :

select datediff( day, ''00:00'', ''23:59'' )

下面的语句返回 4 :

select datediff( day, ''1999/07/19 00:00'',''1999/07/23 23:59'' )

下面的语句返回 0 :

select datediff( month, ''1999/07/19'', ''1999/07/23'' )

下面的语句返回 1 :

select datediff( month, ''1999/07/19'', ''1999/08/23'' )

python监控服务器信息进行可视化_Python实现数据可视化,看如何监控你的爬虫相关推荐

  1. python如何读取mat文件可视化_python 数据分析--数据可视化工具matplotlib

    说明: 数据可视化中的数据集下载地址:(数据来源:从零开始学python数据分析和挖掘) 链接:https://pan.baidu.com/s/1zrNpzSNVHd8v1rGFRzKipQ 提取码: ...

  2. python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...

  3. python 3d大数据可视化_Python大数据可视化编程实践-绘制图表

    Python 数据可视化编程实践 - 绘制图表 准备工作 打开 Jupyter Notebook ,导入需要的包, 并配置好图片交互和中文显示环 境: import pandas as pd impo ...

  4. python实现dem输出三维模型_python DEM数据可视化

    我们在进行地形拟合,或者进行地形分析的时候,尝尝需要将DEM数据可视化,来于其他数据进行比较.下面是pyrhon DEM数据可视化代码 if __name__ == '__main__': fileP ...

  5. python matplotlib数据可视化_Python - matplotlib 数据可视化

    2  图和子图的建立 2.1  导入matplotlib import matplotlib.pyplot as plt import numpy as np 2.2  建立图和子图方式一 plt.p ...

  6. python自动标注autocad坐标_Python+matplotlib数据可视化鼠标悬停自动标注功能实现

    功能描述:根据已有数据绘制图形之后,鼠标进入轴内自动设置背景色,退出轴时自动恢复背景色,若鼠标移动时悬停于曲线附近,则自动弹出文本标注提示当前值. 参考代码: 运行效果(鼠标位于轴外时): 运行效果( ...

  7. python 仪表盘实现_Python实现数据可视化看如何监控你的爬虫状态【推荐】

    今天主要是来说一下怎么可视化来监控你的爬虫的状态. 相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量,当然查询的方式多种多样.今天我来讲一种可视化的方法. 关于爬虫数据 ...

  8. Python爬虫实战,pytesseract模块,Python实现BOOS直聘拉勾网岗位数据可视化

    前言 利用Python实现BOOS直聘&拉勾网岗位数据可视化.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: requests模块 pyspider模 ...

  9. 数据可视化笔记1 数据可视化简介(简史、分类、功能、目标)

    文章目录 1.什么是数据可视化 2.为什么要数据可视化 3.数据可视化简史 4.数据可视化的分类 5.数据可视化的功能 6.数据可视化的目标 7.数据可视化工具 1.什么是数据可视化 数据可视化: 创 ...

最新文章

  1. 时序约束,STA的QA
  2. 曹新雨-2020年目标
  3. 万维网报务器与浏览器各有什么功能,浏览器是如何获得服务器上的信息的,第3章因特网的应用.ppt...
  4. 二分查找递归与非递归的时间比较_我们说一说Python的查找算法!
  5. 关于软件测试学习心得
  6. windos dos命令
  7. C语言-数据结构-单链表的初始化,插入和输出
  8. antv图例出现分页_图例-自定义文本样式
  9. tcp/ip网络协议学习
  10. 【71】力科PCIe 协议分析仪常见操作
  11. java mysql sqlhelper_SQLHelper 的 java版本 - 转载
  12. 判断是不是数字 Java_java如何判断是不是数字
  13. EEPROM,NAND,NOR,QSPI FLASH的区别
  14. Linux系统的定时任务
  15. win10系统更新服务器太慢了,win10升级太慢咋办?win10升级太慢原因及技巧介绍
  16. 如何写好 5000 行的 SQL 代码
  17. 自定义博客的背景图片
  18. Latex 如何给数学公式进行编号
  19. 学习笔记(1):PR快速入门-认识界面
  20. PPT如何导出高清eps?

热门文章

  1. 提高(微)服务安全的非完全攻略
  2. 由浅入深,逐步了解 Java 并发编程中的 Synchronized!
  3. 谈了千百遍的缓存数据一致性问题
  4. 优秀程序员应该具备的 11 个特质
  5. 雷军喜提第四家上市公司;梨视频 App 被全网下架;Flutter 1.17 稳定版发布 | 极客头条...
  6. 微信小范围上线“分付”功能;罗永浩宣布独家签约抖音;Github pages 可能遭遇中间人攻击 | 极客头条...
  7. 想从远程办公进入 toB 蓝海?它可以,你未必
  8. 华为百度美团驰援抗击疫情;自由软件基金会建议开源 Windows 7;印度超越美国成第二大智能手机市场 | 极客头条...
  9. “万物互联·泛在智能” 2019 嵌入式智能国际大会烧脑开幕!
  10. 携程的 Dubbo 之路