前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Prometheus监控学习笔记之prometheus的远端存储

Prometheus监控学习笔记之prometheus的远端存储

作者头像
Jetpropelledsnake21
发布于 2019-03-08 02:45:13
发布于 2019-03-08 02:45:13
5.1K00
代码可运行
举报
文章被收录于专栏:JetpropelledSnakeJetpropelledSnake
运行总次数:0
代码可运行

0x00 概述

prometheus在容器云的领域实力毋庸置疑,越来越多的云原生组件直接提供prometheus的metrics接口,无需额外的exporter。所以采用prometheus作为整个集群的监控方案是合适的。但是metrics的存储这块,prometheus提供了本地存储,即tsdb时序数据库。本地存储的优势就是运维简单,启动prometheus只需一个命令,下面两个启动参数指定了数据路径和保存时间。

  • storage.tsdb.path: tsdb数据库路径,默认 data/
  • storage.tsdb.retention: 数据保留时间,默认15天

缺点就是无法大量的metrics持久化。当然prometheus2.0以后压缩数据能力得到了很大的提升。 为了解决单节点存储的限制,prometheus没有自己实现集群存储,而是提供了远程读写的接口,让用户自己选择合适的时序数据库来实现prometheus的扩展性。 prometheus通过下面两张方式来实现与其他的远端存储系统对接

  • Prometheus 按照标准的格式将metrics写到远端存储
  • prometheus 按照标准格式从远端的url来读取metrics

下面我将重点剖析远端存储的方案

0x01 远端存储方案

配置文件

远程写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# The URL of the endpoint to send samples to.
url: <string>

# Timeout for requests to the remote write endpoint.
[ remote_timeout: <duration> | default = 30s ]

# List of remote write relabel configurations.
write_relabel_configs:
  [ - <relabel_config> ... ]

# Sets the `Authorization` header on every remote write request with the
# configured username and password.
# password and password_file are mutually exclusive.
basic_auth:
  [ username: <string> ]
  [ password: <string> ]
  [ password_file: <string> ]

# Sets the `Authorization` header on every remote write request with
# the configured bearer token. It is mutually exclusive with `bearer_token_file`.
[ bearer_token: <string> ]

# Sets the `Authorization` header on every remote write request with the bearer token
# read from the configured file. It is mutually exclusive with `bearer_token`.
[ bearer_token_file: /path/to/bearer/token/file ]

# Configures the remote write request's TLS settings.
tls_config:
  [ <tls_config> ]

# Optional proxy URL.
[ proxy_url: <string> ]

# Configures the queue used to write to remote storage.
queue_config:
  # Number of samples to buffer per shard before we start dropping them.
  [ capacity: <int> | default = 100000 ]
  # Maximum number of shards, i.e. amount of concurrency.
  [ max_shards: <int> | default = 1000 ]
  # Maximum number of samples per send.
  [ max_samples_per_send: <int> | default = 100]
  # Maximum time a sample will wait in buffer.
  [ batch_send_deadline: <duration> | default = 5s ]
  # Maximum number of times to retry a batch on recoverable errors.
  [ max_retries: <int> | default = 10 ]
  # Initial retry delay. Gets doubled for every retry.
  [ min_backoff: <duration> | default = 30ms ]
  # Maximum retry delay.
  [ max_backoff: <duration> | default = 100ms ]

远程读

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# The URL of the endpoint to query from.
url: <string>

# An optional list of equality matchers which have to be
# present in a selector to query the remote read endpoint.
required_matchers:
  [ <labelname>: <labelvalue> ... ]

# Timeout for requests to the remote read endpoint.
[ remote_timeout: <duration> | default = 1m ]

# Whether reads should be made for queries for time ranges that
# the local storage should have complete data for.
[ read_recent: <boolean> | default = false ]

# Sets the `Authorization` header on every remote read request with the
# configured username and password.
# password and password_file are mutually exclusive.
basic_auth:
  [ username: <string> ]
  [ password: <string> ]
  [ password_file: <string> ]

# Sets the `Authorization` header on every remote read request with
# the configured bearer token. It is mutually exclusive with `bearer_token_file`.
[ bearer_token: <string> ]

# Sets the `Authorization` header on every remote read request with the bearer token
# read from the configured file. It is mutually exclusive with `bearer_token`.
[ bearer_token_file: /path/to/bearer/token/file ]

# Configures the remote read request's TLS settings.
tls_config:
  [ <tls_config> ]

# Optional proxy URL.
[ proxy_url: <string> ]

PS

  • 远程写配置中的write_relabel_configs 该配置项,充分利用了prometheus强大的relabel的功能。可以过滤需要写到远端存储的metrics。

例如:选择指定的metrics。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
remote_write:
      - url: "http://prometheus-remote-storage-adapter-svc:9201/write"
        write_relabel_configs:
        - action: keep
          source_labels: [__name__]
          regex: container_network_receive_bytes_total|container_network_receive_packets_dropped_total
  • global配置中external_labels,在prometheus的联邦和远程读写的可以考虑设置该配置项,从而区分各个集群
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
global:
      scrape_interval: 20s
      # The labels to add to any time series or alerts when communicating with
      # external systems (federation, remote storage, Alertmanager).
      external_labels:
        cid: '9'

0x03 已有的远端存储的方案

现在社区已经实现了以下的远程存储方案

  • AppOptics: write
  • Chronix: write
  • Cortex: read and write
  • CrateDB: read and write
  • Elasticsearch: write
  • Gnocchi: write
  • Graphite: write
  • InfluxDB: read and write
  • OpenTSDB: write
  • PostgreSQL/TimescaleDB: read and write
  • SignalFx: write

上面有些存储是只支持写的。其实研读源码,能否支持远程读, 取决于该存储是否支持正则表达式的查询匹配。具体实现下一节,将会解读一下prometheus-postgresql-adapter和如何实现一个自己的adapter。 同时支持远程读写的

  • Cortex来源于weave公司,整个架构对prometheus做了上层的封装,用到了很多组件。稍微复杂。
  • InfluxDB 开源版不支持集群。对于metrics量比较大的,写入压力大,然后influxdb-relay方案并不是真正的高可用。当然饿了么开源了influxdb-proxy,有兴趣的可以尝试一下。
  • CrateDB 基于es。具体了解不多
  • TimescaleDB 个人比较中意该方案。传统运维对pgsql熟悉度高,运维靠谱。目前支持 streaming replication方案支持高可用。

0x04 后记

其实如果收集的metrics用于数据分析,可以考虑clickhouse数据库,集群方案和写入性能以及支持远程读写。这块正在研究中。待有了一定成果以后再专门写一篇文章解读。目前我们的持久化方案准备用TimescaleDB。

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-02-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MovieLens官网数据集解释
GroupLens Research已从MovieLens网站(http://movielens.org)收集并提供评级数据集。根据集合的大小,在不同的时间段收集数据集。在使用这些数据集之前,请查看其README文件以获取使用许可证和其他详细信息。
木野归郎
2021/12/18
1.5K0
资源 | 这是一份非常全面的开源数据集,你,真的不想要吗?
选自Medium 作者:Bharath Raj 机器之心编译 参与:高璇、王淑婷 近期,skymind.ai 发布了一份非常全面的开源数据集。内容包括生物识别、自然图像以及深度学习图像等数据集,现机器之心将其整理如下:(内附链接哦~) 最近新增数据集 开源生物识别数据:http://openbiometrics.org/ Google Audioset:扩展了 632 个音频分类样本,并从 YouTube 视频中提取了 2,084,320 个人类标记的 10 秒声音片段。 地址:https://resea
机器之心
2018/09/20
7690
还没准备好数据呢,为什么要着急用算法呢
开始之前,通知下我的读者,随着订阅读者越来越多,为了对读者们负责,有以下几件事情需要告知下:
abs_zero
2018/07/25
1.2K0
这30个高质量的数据集网站,你必须要试试!
http://www.datatang.com/about/about-us.html
龙哥
2021/09/03
3.2K0
【资源】最好用的 AI 开源数据集 Top 39:计算机视觉、NLP、语音等 6 大类
【新智元导读】本文按计算机视觉、自然语言处理、语音识别、地理空间数据等人工智能的子领域分类,精心整理,每个数据集均附有下载链接,是做 AI 研究不容错过资源。 今天,构造 AI 或机器学习系统比以往任何时候都更加容易。我们有许多开源的最前沿的工具,如 TesorFlow,Torch,Spark 等,也有 AWS、Google Cloud 以及其他云服务提供商提供的大量计算力,这意味着你可以悠哉地一边喝着咖啡一边用 laptop 训练模型。 虽然不算人工智能这列火车的车头,但 AI 革命的幕后英雄是数据——得
新智元
2018/03/27
1.8K0
【资源】最好用的 AI 开源数据集 Top 39:计算机视觉、NLP、语音等 6 大类
【资源】想进行数据科学项目却没有数据集?25个数据集网站汇总
原作者 Kunal Jain 编译  Mika 本文为 CDA 数据分析师原创作品,转载需授权 前言 如果用一个句子总结学习数据科学的本质,那就是: 学习数据科学的最佳方法就是应用数据科学。 如果你是初学者,那么每完成一个项目你的能力就会大大提高。如果你是有经验的数据科学从业者,那么你应该懂这个道理。 但是,当我向人们给出这个建议时,他们通常会问:我可以在哪里获得练习的数据集呢? 他们没有意识到存在大量开放的数据集可使用。他们没有意识到通过这些项目,能够不断学习,从而促进自己的职业发展。 如果你认为这符合你
CDA数据分析师
2018/02/26
2K0
【资源】想进行数据科学项目却没有数据集?25个数据集网站汇总
Spark机器学习实战 (十二) - 推荐系统实战
将结合前述知识进行综合实战,以达到所学即所用。在推荐系统项目中,讲解了推荐系统基本原理以及实现推荐系统的架构思路,有其他相关研发经验基础的同学可以结合以往的经验,实现自己的推荐系统。
JavaEdge
2019/04/21
3.3K0
Spark机器学习实战 (十二) - 推荐系统实战
Spark机器学习实战 (十二) - 推荐系统实战
将结合前述知识进行综合实战,以达到所学即所用。在推荐系统项目中,讲解了推荐系统基本原理以及实现推荐系统的架构思路,有其他相关研发经验基础的同学可以结合以往的经验,实现自己的推荐系统。
JavaEdge
2022/11/30
1.5K0
Spark机器学习实战 (十二) - 推荐系统实战
玩机器学习要知道哪些开源数据库?
开发 AI 和机器学习系统从来没有像现在这样方便。 类似于 TensorFlow、Torch 和 Spark 这样的开源工具,在 AI 开发者群体中已是无处不在。再加上亚马逊 AWS、Google Cloud 等云服务带来的海量计算能力,将来使用笔记本电脑来训练 ML 模型或许不再难以想象。 公众对 AI 的遐想,总忽视了数据的角色。但海量被标记、注解过的数据,是当下 AI 革命当之无愧的主要推手之一。业内研究团队和公司机构,均明白“数据民主化”的意义——使任何开发者都能获取高质量的数据来训练、测试模型,是
AI研习社
2018/03/19
9930
玩机器学习要知道哪些开源数据库?
初学者指南:利用SVD创建推荐系统
作者:Mayukh Bhattacharyya 翻译:老齐 序言 你是否有过这样的经历:前一天晚上登录Netflix,观看了《星际穿越》,他们会建议你看《地心引力》。或者你在亚马逊上购买了东西,看到
老齐
2020/08/28
7110
初学者指南:利用SVD创建推荐系统
如何搭建增量推荐系统?
尽管我会尽量减少数学术语的使用,但本文希望读者熟悉一些概念,如矩阵分解、嵌入空间以及基本的机器学习术语。这篇文章并不是推荐系统的介绍,而是对它们的增量变体的介绍。在任何情况下,本文的主要受众是机器学习和推荐系统领域的初学者。
AI研习社
2020/02/25
1.7K0
机器学习经典开源数据集
"数据为王,使用相同机器学习算法,不同质量的数据能训练出不同效果的模型。本文将分享数据科学领域中经典的几个开源数据集。
木东居士
2018/05/25
2.5K8
使用深度学习构建先进推荐系统:近期33篇重要研究概述
选自arXiv 作者:Ayush Singhal、Pradeep Sinha、Rakesh Pant 机器之心编译 除了计算机视觉和自然语言处理,深度学习近年来在推荐系统上也取得了引人关注的结果。事实上,Spotify、Netflix、Facebook、谷歌等公司早已对深度学习推荐系统有过深入研究,并在实际应用中取得了很好的效果。来自 Contata Solutions 的研究人员发表在 IJCA 上的概述论文对这些研究进行了梳理。 论文:Use of Deep Learning in Modern Rec
机器之心
2018/05/11
1K0
推荐系统干货总结
推荐系统是一个相当火热的研究方向,在工业界和学术界都得到了大家的广泛关注。希望通过此文,总结一些关于推荐系统领域相关的会议、知名学者,以及做科研常用的数据集、代码库等,一来算是对自己涉猎推荐系统领域的整理和总结,二来希望能够帮助想入门推荐系统的童鞋们提供一个参考,希望能够尽快上手推荐系统,进而更好更快的深入科研也好、工程也罢。
张小磊
2019/08/16
1.1K0
推荐算法理论与实践(差代码) 原
之前的方法是基于用户已经看过一些电影,买过一些商品并且进行了评分,因此具备该用户信息,以便推荐
晓歌
2018/08/15
8490
推荐算法理论与实践(差代码)
                                                                            原
Use of Deep Learning in Modern Recommendation System: A Summary of Recent Works(笔记)
注意:论文中,很多的地方出现baseline,可以理解为参照物的意思,但是在论文中,我们还是直接将它称之为基线, 也就是对照物,参照物. 这片论文中,作者没有去做实际的实验,但是却做了一件很有意义的事,他收罗了近些年所有推荐系统中涉及到深度学习的文章 ,并将这些文章进行分类,逐一分析,然后最后给出了一个推荐系统以后的发展方向的预估. 那么通过这篇论文,我们可以较为 系统的掌握这些年,在推荐系统方面,深度学习都有那些好玩的应用,有哪些新奇的方法,这片论文起到了一个简报的作用,下面是论文的一个粗糙翻译: 概述
Gxjun
2018/03/27
9330
Use of Deep Learning in Modern Recommendation System: A Summary of Recent Works(笔记)
【机器学习】从电影数据集到推荐系统
你们可能曾经花上几分钟甚至几个小时去选择一部电影单独看或者和家人一起看,不幸的是没有成功?你希望有人在这种时候替你做决定,这正是推荐系统的作用。
黄博的机器学习圈子
2021/07/07
3.3K1
【机器学习】从电影数据集到推荐系统
在Python中实现你自己的推荐系统
现今,推荐系统被用来个性化你在网上的体验,告诉你买什么,去哪里吃,甚至是你应该和谁做朋友。人们口味各异,但通常有迹可循。人们倾向于喜欢那些与他们所喜欢的东西类似的东西,并且他们倾向于与那些亲近的人有相似的口味。推荐系统试图捕捉这些模式,以助于预测你还会喜欢什么东西。电子商务、社交媒体、视频和在线新闻平台已经积极的部署了它们自己的推荐系统,以帮助它们的客户更有效的选择产品,从而实现双赢。 两种最普遍的推荐系统的类型是基于内容和协同过滤(CF)。协同过滤基于用户对产品的态度产生推荐,也就是说,它使用“人群的智慧
CDA数据分析师
2018/02/05
3K0
在Python中实现你自己的推荐系统
推荐系统实战-基于用户的协同过滤
1、数据集简介 MovieLens数据集包含多个用户对多部电影的评级数据,也包括电影元数据信息和用户属性信息。 这个数据集经常用来做推荐系统,机器学习算法的测试数据集。尤其在推荐系统领域,很多著名论文都是基于这个数据集的。(PS: 它是某次具有历史意义的推荐系统竞赛所用的数据集)。 下载地址为:http://files.grouplens.org/datasets/movielens/,有好几种版本,对应不同数据量,本文所用的数据为1M的数据。 2、数据介绍 1m的数据解压后,可以看到四个主要的csv文件,
石晓文
2018/04/11
2.6K1
推荐系统实战-基于用户的协同过滤
WSDM2022 | 数据困境: 我们究竟有多了解推荐系统数据集?
今天跟大家分享一篇获得WSDM2022最佳论文提名奖的论文,不同于以往论文对实验过程以及实验设置的可复现性分析,该论文从实验的根源入手,即主要对我们所使用的推荐系统数据集进行了实验探索,并对实验结果进行了深入分析。
张小磊
2022/04/08
6400
WSDM2022 | 数据困境: 我们究竟有多了解推荐系统数据集?
推荐阅读
相关推荐
MovieLens官网数据集解释
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验