前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据采集export使用prometheus_client 和 Flask实现

数据采集export使用prometheus_client 和 Flask实现

原创
作者头像
master_lu
修改于 2022-04-09 10:29:15
修改于 2022-04-09 10:29:15
1.7K00
代码可运行
举报
文章被收录于专栏:prometheusprometheus
运行总次数:0
代码可运行

一、export

1、安装库

代码语言:shell
AI代码解释
复制
pip install prometheus_client  flask

2、demo.py

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
from atexit import register
import mimetypes
from prometheus_client.core import CollectorRegistry
from prometheus_client import Gauge,Counter,Info,Enum,generate_latest,start_http_server

from flask import Response, Flask


#获取源数据,数据源可以是任意接口、数据库、文件等
def  get_qcloud_data():
      data = {
        'cvm': 1,
        'cbs': 2,
        'clb': 3
      }
      return data
    
#设置metrics
#Prometheus提供4种类型Metrics:Counter, Gauge, Summary和Histogram
#Counter 累加器,只有inc方法,定义方法指标名,描述,默认增长值是1
#Gauge 可任意设置,比如cpu、内存、磁盘等指标,定义方法,指标名,描述,标签
#Histogram 分桶统计,对每个桶的数据进行统计
#Summary 分位统计,对每个值进行统计

registry = CollectorRegistry(auto_describe=False)
product_cvm = Gauge('product_cvm', 'product_usage_cvm', ['product'], registry=registry)
product_cbs = Gauge('product_cbs', 'product_usage_cbs', ['product'], registry=registry)
product_clb = Gauge('product_clb', 'product_usage_clb', ['product'], registry=registry)



app = Flask(__name__)


@app.route("/metrics")
def main():
  data = get_qcloud_data()
  for key, value in data.items():
    if key == 'cvm':
      product_cvm.labels(product=key).set(value)
    elif key == 'cbs':
      product_cbs.labels(product=key).set(value)
    elif key == 'clb':
      product_clb.labels(product=key).set(value)
  return Response(generate_latest(registry), mimetype="text/plain")
      

@app.route('/')
def index():
  return "welecome to qcloud export"

if __name__ == "__main__":
  app.run(host="0.0.0.0", port=8000)

3、观察采集到的数据

image.png
image.png

二、prometheus

1、安装prometheus,prometheus.yml文件先拿出来再映射

代码语言:shell
AI代码解释
复制
docker run -d -p 9090:9090 --name prometheus --restart=always -v /etc/localtime:/etc/localtime -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml -v $(pwd)/data:/prometheus/  /prom/prometheus

2、编辑prometheus.yml

添加刚写的export地址,prometheus是请求式获取数据,默认配置15s

代码语言:yaml
AI代码解释
复制
# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
      - targets: ["192.168.1.200:8000"]

3、

image.png
image.png
image.png
image.png

三、grafana

image.png
image.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
聊聊 MySQL 的 Online DDL
日常开发我们对一条DML语句较为熟悉,很多开发人员都了解sql的执行过程,比较熟悉,但是DDL是如何执行的呢,大部分开发人员可能不太关心,也认为没必要了解,都交给DBA吧。其实不然,了解一些能尽量避开一些ddl的坑,那么下面带大家一起了解一下DDL执行的方式,也算抛砖引玉吧。如有错误,还请各位大佬们指正。
码猿技术专栏
2023/09/07
1.1K0
聊聊 MySQL 的 Online DDL
如何准确判断什么时候可以给大表加索引 - 崔笑颜的博客
以社交平台的用户表为例,随着业务的快速增长,用户表user单表数据量越来越大,此时,如果我们想给user表添加索引,数据规模对添加过程的影响势必要考虑在内,但是,单表数据规模对添加索引会产生什么样的影响呢,我们在什么样的数据库请求状态下给大表添加索引比较好呢?
崔笑颜
2021/05/06
1.3K0
如何准确判断什么时候可以给大表加索引 - 崔笑颜的博客
Mysql onlineddl vs gh-ost
Innodb早期支持通过copy table跟inplace的方式来执行DDL语句,其原理如下:
mingjie
2022/05/12
8560
Mysql onlineddl vs gh-ost
MySQL 5.7 特性:Online DDL
DDL 一向是业务的痛点,尤其是对大型表的 DDL 操作,具有操作时间久,对性能影响大,可能影响业务正常使用等问题。
王文安@DBA
2020/09/14
8.2K1
MySQL 5.7 特性:Online DDL
MySQL 实战笔记 第03期:MySQL Online DDL 三阶段初探
上一节咱们了解了元数据锁,但在 Online DDL 操作中具体是怎样加锁的呢?加几次锁呢?带着这些疑问,我们一起来学习 DDL 三阶段。
数据库交流
2022/04/25
6140
MySQL 实战笔记 第03期:MySQL Online DDL 三阶段初探
故障分析 | MySQL 执行 Online DDL 操作报错空间不足?
作者:徐文梁,爱可生 DBA 成员,一个执着于技术的数据库工程师,主要负责数据库日常运维工作。擅长 MySQL,Redis 及其他常见数据库也有涉猎;喜欢垂钓,看书,看风景,结交新朋友。
爱可生开源社区
2024/02/21
2890
故障分析 | MySQL 执行 Online DDL 操作报错空间不足?
MySQL Online DDL
serena
2017/06/01
8K0
MySQL Online DDL
MySQL 到底能不能online ddl index PG VS MYSQL
上周一篇关于MySQL 拜托加个索引能和PG一样简单吗?只能gh-ost了 烦人,的帖子引起争议,主要因为我提到 POSTGRESQL 在线添加索引是非常方便的,MySQL 在这方面不咋地,首先说结果,我对MYSQL的知识需要更新,针对高版本得MYSQL是支持online ddl index,所以写这篇来纠正一下,但是有一些同学发了一些MYSQL 支持online ddl index 的绝对论甚至有人说mysql 5.x就可以onine ddl index,这点咱们也的纠正,对就是对,错就是错。
AustinDatabases
2024/06/05
2040
MySQL  到底能不能online ddl index    PG VS MYSQL
MySQL谬误集02: DDL锁表
导语 | 本文是MySQL谬误集系列文章的第二篇,该系列旨在纠正一系列似是而非的说法。比如关于MySQL DDL操作,有很多同学认为会锁表,那是不是一定会锁表呢?是锁读还是锁写呢?锁多长时间?不同的DDL操作有差别吗?MySQL从5.5到8.0,对这个问题有什么改进呢?本文做了一个简单的总结。
DBA成江东
2023/08/19
1.6K0
MySQL谬误集02: DDL锁表
【腾讯云CDB】如何快速删除InnoDB中的大表
本文介绍了MySQL DROP TABLE操作可能存在的性能瓶颈,包括InnoDB引擎表、MyISAM引擎表、以及操作系统层面的限制。针对这些瓶颈,本文提出了相应的优化方案,包括增大InnoDB缓冲池、使用MyISAM存储引擎、以及调整操作系统相关参数。通过这些优化方案,可以有效地提升MySQL数据库的性能,减少DROP TABLE操作对数据库性能的影响。
腾讯云数据库 TencentDB
2017/12/14
4K1
MySQL DDL发展史
- 注意: 在online ddl前,inplace的方法主要在第三步大大缩短了时间,只重构了索引,没有重新copy所有数据
划水教练
2022/05/17
1.1K0
MySQL DDL发展史
MySQL 日志系统之 redo log 和 binlog
之前我们了解了一条查询语句的执行流程,并介绍了执行过程中涉及的处理模块。一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。
武培轩
2019/10/25
9690
Mysql 除了并行查询以外也可以并行索引,升级吧少年
POSTGRESQL 在 DDL DML DQL 都可以并行,之前MYSQL 在并行方面一直是软肋,MYSQL 8 已经提供了DQL的并行, DDL 的并行也支持了,从MYSQL5.X 升级到8 是必然了.
AustinDatabases
2021/12/27
1.2K0
Mysql  除了并行查询以外也可以并行索引,升级吧少年
TXSQL Parallel DDL功能建设
TXSQL Parallel DDL 功能建设 DDL(Data Definition Language)是用来修改数据库和表结构的一类操作,是数据库所有操作中最高危也是最重要的一类操作,常见的DDL操作包括:加减列、修改列类型、加减索引等。由于DDL操作涉及到数据库表结构、表数据的重构,尤其是在云数据库场景下,表的数据量急速上涨,DDL操作的效率受到了极大的挑战,一条慢速的DDL操作甚至需要花费几天的时间来完成,在这期间DDL操作持续持有锁,意味着业务可能会面临长时间等待锁的情况,几天的等待对于业务来说是
腾讯数据库技术
2023/04/25
7000
TXSQL Parallel DDL功能建设
技术分享 | Online DDL 工具 pt-osc
爱可生 DBA 团队成员,主要负责 MySQL 故障处理和公司自动化运维平台维护。对技术执着,为客户负责。
爱可生开源社区
2020/09/23
5K0
技术分享 | Online DDL 工具 pt-osc
MySQL 核心模块揭秘 | 06 期 | 事务提交之前,binlog 写到哪里?
作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。
爱可生开源社区
2024/02/21
2330
MySQL 核心模块揭秘 | 06 期 | 事务提交之前,binlog 写到哪里?
Oracle online系列(下):online indexbuild
点击上方蓝色字关注我们~ online indexbuild (online create或者rebuild index)是Oracle的一个极其常用的online操作,我们知道当创建索引或者重建索引没有加online关键字的话,会请求表对象上的4号TM锁,而DML请求的是3号TM锁,3和4的TM锁并不兼容,所以在索引创建或者重建期间是无法进行DML操作的,等待事件为enq: TM – contention。 为了改进这一缺陷,在Oracle 8i推出了online indexbuild功能,并且在11.
数据和云
2022/03/04
1.3K0
详解MySQL原生Online DDL:从历史演进到原理及使用
MySQL Online DDL 功能从 5.6 版本开始正式引入,发展到现在的 8.0 版本,经历了多次的调整和完善。本文主要就 Online DDL 的发展过程,以及各版本的区别进行总结。其实早在 MySQL 5.5 版本中就加入了 INPLACE DDL 方式,但是因为实现的问题,依然会阻塞 INSERT、UPDATE、DELETE 操作,这也是 MySQL 早期版本长期被吐槽的原因之一。
公众号:码到三十五
2024/03/19
2K0
详解MySQL原生Online DDL:从历史演进到原理及使用
架构师技能5:深入MySQL原理-Waiting for table metadata lock引发系统崩溃
我们码农平时大多数时间都在撸码或者撸码的路上,很少关注mysql的一些底层原理,当出现问题时没能力第一时间解决问题,出现问题后不去层层剖析问题产生的原因,后续也就可能无法避免或者绕开同类的问题。因此不要单纯做Ctrl+c和Ctrl+V,而是一边仰望星空(目标规划),一边脚踏实地去分析每个问题。 在mysql系列专栏里面,我深入浅出的总结了mysql相关知识,感兴趣的话可以去阅读,有问题就可以随时相互交流学习。
黄规速
2022/04/14
9840
架构师技能5:深入MySQL原理-Waiting for table metadata lock引发系统崩溃
【腾讯云CDB】源码分析 · MySQL binlog组提交和Multi-Threaded-Slave
本文介绍了MySQL中的binlog组提交及其在MySQL Replication中的作用。binlog是MySQL中一种二进制日志,用于记录数据库的更改历史。在MySQL Replication中,通过binlog实现主从复制。当主库发生更改时,binlog会记录所有更改,并将更改发送到从库。从库根据binlog中的更改来更新自己的数据,从而保持与主库一致。在MySQL中,使用binlog可以实现多种功能,如灾难恢复、数据迁移、只读实例等。
腾讯云数据库 TencentDB
2017/12/28
3.4K0
【腾讯云CDB】源码分析 · MySQL binlog组提交和Multi-Threaded-Slave
推荐阅读
相关推荐
聊聊 MySQL 的 Online DDL
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档