解密:prometheus学习系列十一: Prometheus 采集器的编写
优采云 发布时间: 2022-11-13 02:27解密:prometheus学习系列十一: Prometheus 采集器的编写
几个官方exporter的使用已经写在前面的文章中了。在实际使用环境中,我们可能需要采集一些自定义数据。这时候一般需要我们自己写采集器。
快速入门编写介绍性demo写代码
from prometheus_client import Counter, Gauge, Summary, Histogram, start_http_server
# need install prometheus_client
if __name__ == '__main__':
c = Counter('cc', 'A counter')
c.inc()
g = Gauge('gg', 'A gauge')
g.set(17)
s = Summary('ss', 'A summary', ['a', 'b'])
s.labels('c', 'd').observe(17)
h = Histogram('hh', 'A histogram')
h.observe(.6)
start_http_server(8000)
import time
while True:
time.sleep(1)
只需要一个py文件,运行时会*敏*感*词*8000端口,访问127.0.0.1:8000端口。
效果图
其实已经写好了一个exporter,就这么简单,我们只需要在prometheus中配置相应的exporter即可。但是,我们导出的数据是没有意义的。
数据类型简介
Counter Accumulation类型,只能增加,比如记录http请求的总数或者网络上收发包的累计值。
Gauge:仪表盘类型,适用于上升下降、一般网络流量、磁盘读写等,使用该数据类型会有波动和变化。
总结:基于抽样,在服务器端进行统计。我们在计算平均值的时候,可能会认为某个值不正常,从而计算出的平均值不能准确反映实际值,需要具体的点位。
直方图:基于抽样,在客户端进行统计。我们在计算平均值的时候,可能会认为某个值不正常,从而计算出的平均值不能准确反映实际值,需要具体的点位。
采集内存使用数据写入采集类代码
from prometheus_client.core import GaugeMetricFamily, REGISTRY
from prometheus_client import start_http_server
import psutil
class CustomMemoryUsaggeCollector():
def format_metric_name(self):
return 'custom_memory_'
def collect(self):
vm = psutil.virtual_memory()
#sub_metric_list = ["free", "available", "buffers", "cached", "used", "total"]
sub_metric_list = ["free", "available", "used", "total"]
for sub_metric in sub_metric_list:
gauge = GaugeMetricFamily(self.format_metric_name() + sub_metric, '')
gauge.add_metric(labels=[], value=getattr(vm, sub_metric))
yield gauge
if __name__ == "__main__":
collector = CustomMemoryUsaggeCollector()
REGISTRY.register(collector)
<p>
start_http_server(8001)
import time
while True:
time.sleep(1)</p>
公开数据以部署代码并集成 prometheus
# 准备python3 环境 参考: https://virtualenvwrapper.readthedocs.io/en/latest/
yum install python36 -y
pip3 install virtualenvwrapper
vim /usr/local/bin/virtualenvwrapper.sh
# 文件最前面添加如下行
# Locate the global Python where virtualenvwrapper is installed.
VIRTUALENVWRAPPER_PYTHON="/usr/bin/python3"
# 文件生效
source /usr/local/bin/virtualenvwrapper.sh
# 配置workon
[root@node01 ~]# echo "export WORKON_HOME=~/Envs" >>~/.bashrc
[root@node01 ~]# mkvirtualenv custom_memory_exporter
(custom_memory_exporter) [root@node01 ~]# pip install prometheus_client psutil
yum install python36-devel
(custom_memory_exporter) [root@node01 ~]# chmod a+x custom_memory_exporter.py
(custom_memory_exporter) [root@node01 ~]# ./custom_memory_exporter.py
# 测试是否有结果数据
[root@node00 ~]# curl http://192.168.100.11:8001/<br /><br />prometheus.yml 加入如下片段<br /> - job_name: "custom-memory-exporter"<br /> static_configs:<br /> - targets: ["192.168.100.11:8001"]<br /><br />[root@node00 prometheus]# systemctl restart prometheus <br />[root@node00 prometheus]# systemctl status prometheu
查询效果图
解读:谷歌SEO:网址太相似,会被认定为重复页面,不予收录!
最近很多客户朋友都在问:如果网站里面有重复的页面,会不会对谷歌SEO不好?
首先,我们需要明确什么是重复页面,也就是类似重复的网站页面内容出现在一个网站中。判断一个页面是否重复的标准是谷歌搜索引擎,而不是人。虽然谷歌并未正式表示重复内容会带来任何处罚或负面信号,但已经明确表示不会索引收录重复内容(网站没有收录会错过排名机会,还有更多忘记流量)
在 SEO 行业中也有一个共识,即 URL 是页面的唯一标识符。与*敏*感*词*类似,一个人只能拥有一个*敏*感*词*ID。如果太多,这个人很可能是个问题。同样,在搜索引擎中,搜索引擎更喜欢具有明确且唯一标识符的页面。这样搜索引擎可以更好地理解你的网站。
为避免不必要的抓取和索引工作,Google 会尝试根据 网站 网址预测网页可能收录相似或重复的内容。当谷歌抓取具有相似URL的页面,发现它们收录相同的内容时,它就可以确定具有该URL结构的所有其他页面也具有相同的内容,然后将这些页面判断为重复页面而不是对其进行抓取 收录。
01 为什么谷歌不喜欢重复页面?
无法索引
搜索引擎不能索引,因为搜索引擎不知道你的页面是否需要被索引。
无法判断
搜索引擎无法确定哪个页面优先排名。试想一下,内容相同,但 URL 不同。搜索引擎应该如何选择?也许你甚至别无选择,是吗?
不利于用户体验
当用户选择分享你的链接(发布外部链接)时,他们应该选择哪一个?
包括知名的阿里巴巴国际站平台,也很强调产品的重复检查。其实也是为了满足谷歌搜索引擎不喜欢重复内容的“偏好”。
02哪些操作会导致出现重复页面?
具有许多参数的页面
许多市场的产品页面 URL 网站 可能有多个参数。例如,一个产品有尺寸参数、颜色参数和型号参数。当您选择不同的产品时,URL 中的参数可能会有所不同。
不同的 URL 被搜索引擎视为不同的页面。但是,内容(产品图片、产品描述或评论部分)完全相同。很容易导致出现重复页面。
有和没有 3W 的页面
大多数网站都会将WWW域名和没有WWW的域名解析为同一个网站。也就是说,搜索引擎中出现了 2 个不同的 URL(带 www 和不带 www)但内容相同。你是一个搜索引擎,你应该对 网站 进行排名吗?谁先来?
域名后缀
很多人的网站主域名都会有后缀(index.html、index.php等)
像这样:其实这个地址和页面的内容是一模一样的。但是,对于一些搜索引擎来说,它会被视为两个页面,这也会导致重复内容的出现。
03有什么办法可以解决这个问题?
查找重复页面
有必要找到重复的页面。可以使用Siteliner、Copyscape等工具对网站进行系统诊断,找到重复度高的页面,先做出选择,然后让谷歌搜索引擎爬取,收录,秩。
301跳
如果你有 4 组不同的 URL 但内容相同,从 URL 中选择一个标准的,并将剩余的 3 组链接 301 重定向到第一页 URL。因为301跳转是加权跳转,所以可以统一4组URL的权重。这样,搜索引擎不仅可以识别独特的页面,同时独特的页面也可以获得更好的排名。
规范限制
处理重复内容的另一种选择是使用规范标签对其进行标记。这实际上告诉搜索引擎,虽然有多个相同的页面,但真正需要参与排名的只有我选择的具体页面。
概括:
谷歌总是想出一条规则,不会告诉任何人他们的算法排名,其实这与谷歌的使命是分不开的…… 让用户最大限度地检索到最相关和最可靠的信息。
编译:赛琳娜
全球搜索——外贸营销一站式解决方案:
通过109个多语言建站系统、领先的搜索引擎SEO技术、多渠道营销推广技术、AI智能获客系统、社交营销和自动化营销系统,为企业提供多元化、高效、高转化的外贸营销解决方案。企业可以快速获得大量海外精准询盘,转化更多订单。