解密: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智能获客系统、社交营销和自动化营销系统,为企业提供多元化、高效、高转化的外贸营销解决方案。企业可以快速获得大量海外精准询盘,转化更多订单。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线