- 博客(63)
- 收藏
- 关注
原创 prometheus基于consul的服务发现
consul在微服务中用于服务注册与发现的,在prometheus中也可以用于被监控对象的自动发现,这样就实现了在不修改prometheus配置文件、不重启的情况下,自动发现exporter并将其加入到监控范围。
2024-09-08 17:19:17 683
原创 prometheus基于文件的服务发现
但这个缺点是,每次修改完后都得重启prometheus。有没有什么办法,能在不重启的情况下增加target呢?有,那就是prometheus的服务自动发现。之间讲到,prometheus监控的对象就来自于他的配置文件里面的targets,如果要新增被监控对象,就继续往targets里面加。今天咱们讲一个最常用的方式,基于文件的服务发现(File-Based-Service-Discovery)新增target时,可以增加文件,也可以直接修改文件内容,prometheus都能识别到。
2024-09-01 23:33:52 544
原创 Prometheus+Grafana监控数据可视化
上一篇文章讲了prometheus的简单使用,这一篇就先跳过中间略显枯燥的内容,来到监控数据可视化。一方面,可视化的界面看着更带劲,另一方面,也更方便我们直观的查看监控数据,方便后面的学习。
2024-08-30 23:07:22 804
原创 prometheus入门(简单使用)
先上一张官网的架构图:Prometheus的构成:方式1:去官网下载二进制安装包方式2:使用docker快速体验 我这里选择方式2启动dockr容器后,浏览器访问 ip:9090 就能看到Prometheus server的网页:点 Status>Targets 就能看到我们监控的目标:这个监控目标来自哪儿呢?咱们进容器看下他的配置文件(把这个默认配置文件复制出来,待会儿有用)::是不是就和网页上的target对上了?exporter就是运行在你要监控的目标上,收集监控目标的数据,提供给P
2024-08-25 22:50:21 924
原创 SQLAlchemy修改postgres表的jsonb字段失效
今天遇到一灵异事件,ORM更新操作,一字段始终不生效,最后发现问题原因是postgres的jsonb导致的。
2024-03-27 22:38:52 360
原创 easyocr和paddleocr的简单使用与对比
这次有个OCR的需求,对比了一下和的识别效果,最终选择了paddleocr。这里记录一下使用过程和遇到的问题。
2024-03-14 23:30:43 2321
原创 Windows本地代理,IP端口转发
比如我访问 127.0.0.1:8500时,把请求转发到192.168.1.3:8500。需求:本机访问 ip1:port1时,把它转到 ip2:port2。以管理员身份运行命令行窗口。
2023-12-03 16:23:15 580
原创 Python partial的作用
partial 的科普 见这位大神的文章,写的很好:https://zhuanlan.zhihu.com/p/47124891。,此时问题来了,前2个参数signo, frame,是系统传的,我们要如何把自己的service_id传进去呢?这时 就需要用到partial了。一个例子:监听服务退出信号。
2023-08-27 22:21:31 256
原创 flask接口请求频率限制
return jsonify({'code': 403, 'msg': '请稍后再试!'})# 全局错误处理# 单独错误处理比如 有时候,希望登录失败的,才进行计数,登录失败超过20次就禁止访问,而登录成功的,不计数,随便请求 无限制# 上面的例子是:返回的JSON中code==400 就做一次计数,否则就不计数(这次请求,不计入限制)# 还可以有其他的计数逻辑,比如= 200更多操作见官网。
2023-08-16 21:11:31 1628 1
原创 kubevirt pod 报错 N node(s) had volume node affinity conflict
猜测是 hostpath-csi StorageClass 无法预知pod将被调度到哪个node上,必须等pod调度到node后才能做PV-PVC的绑定,所以它的 volumeBindingMode 必须是 WaitForFirstConsumer。我把 hostpath-csi StorageClass 的 volumeBindingMode 改成了 Immediate 就发生了这个错误,改回 WaitForFirstConsumer 就解决了。我这里所写的,可能只是其中一个可能的原因。
2023-08-10 10:50:19 481
原创 元素周期表的118个化学元素
在网上没找到能复制拿来用的,去百度爬了个,整理下 方便后来人:['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar', 'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y',
2022-04-25 17:30:57 991 2
原创 使用docker体验elasticsearch
注意事项:官方文档提示至少要为docker分配4G的内存,否则可能会启动失败。我亲测确实是这样,elasticsearch+kibana 占用了3.3G内存。你可能会遇到这个错误:bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]。这时需要到(宿主机) /etc/sysctl.conf 中增加一行:v
2022-04-11 09:05:15 250
原创 APScheduler定时任务不执行?
不知你有没有遇到APScheduler定时任务部分未执行的情况,我反正是遇到了,任务随机性的不执行,一看官网文档,才知道是自己的使用方法不对。 当前网上的大多数文章都只说了基本的使用方法,没说注意事项。我在这里整理一下:1. Executor 是默认大小为10的ThreadPoolExecutor。原文:from apscheduler.schedulers.background import
2021-12-18 23:10:59 6687 6
原创 MySQL分区表-按月份归类
MySQL单表数据量,建议不要超过2000W行,否则会对性能有较大影响。最近接手了一个项目,单表数据超7000W行,一条简单的查询语句等了50多分钟都没出结果,实在是难受,最终,我们决定用分区表。建表一般的表(innodb)创建后只有一个 idb 文件:create table normal_table(id int primary key, no int)查看数据库文件:normal_table.ibd 创建按月份分区的分区表,注意!除了常规主键外,月份字段(用来分区的字段)也必须是主键
2021-08-25 22:59:58 590 1
原创 nginx负载均衡-提升服务的并发能力
我使用的框架是python的fastAPI,一个简单的hello world,加一个sleep(2)模拟耗时操作。代码如下:import timeimport uvicornfrom fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): time.sleep(2) # 模拟耗时操作 return {"Hello": "World"}先单进程启动启动命令:uvicorn --host 0.
2021-08-14 21:59:13 611
原创 fastapi使用websocket的简单示例
前端页面:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>websocket</title></head><body><h1>WebSocket Chat</h1><input type="text" id="nickname" autocomplete="off"
2021-08-01 12:09:38 1534 1
原创 fastAPI使用mongoDB
我用的是mongoengine先 pip install mongoengine编写ORM模型:from mongoengine import Document, IntField, StringField, ListField, EmbeddedDocument, EmbeddedDocumentField, FloatFieldclass Course(EmbeddedDocument): subject = StringField(required=True) score =
2021-07-31 17:20:37 2166
原创 FASTapi sqlalchemy 的一些写法
joindb.query(YourModelA).join(YourModelA)...and、orfrom sqlalchemy import and_, or_db.query(YourModel).filter(and_(condition1,condition1...))...offset、limitdb.query(YourModel).filter(...).offset(1).limit(1).all()is null 、is not nulldb.qu.
2021-07-31 16:15:39 751
原创 fastapi.exceptions.RequestValidationError: 1 validation error for Request
框架用的fastAPI 报错如标题我有两个路由:@router.get("/{id}") pass@router.get("/others") pass结果访问 /others报错:fastapi.exceptions.RequestValidationError: 1 validation error for Requestpath -> id value is not a valid integer (type=type_error.integer)官网对此的解释 ,
2021-07-21 10:20:49 3322
原创 python sorted 对对象排序
方法一:class Myobj: def __init__(self,id,score): self.id=id self.score=scoreif __name__ == '__main__': array=[Myobj(1,5),Myobj(2,2),Myobj(3,0)] array=sorted(array,key=lambda Myobj:Myobj.score) for obj in array: print
2021-06-15 14:52:13 340
原创 unable to prepare context: path “.\r“ not found
执行sh 脚本的时候,报标题错误原因是 脚本是在Windows上编辑,然后上传到Linux上执行。好像是2个系统编码不一样导致的vim 打开脚本 进入命令行 输入 set ff=unix 再保存退出即可
2021-05-21 09:18:46 3920
原创 python ipaddress.ip_network 报错ValueError: IP/x has host bits set
from ipaddress import ip_networkif __name__ == '__main__': network=ip_network('127.0.0.1/8') # 随便一个示例 print(network)在使用ip_network的时候报错 ValueError: 127.0.0.1/8 has host bits set 刚开始没搞明白原因,后来仔细检查了下,像上面 ‘127.0.0.1/8’ 后面24位(32-8)必须全是0才行。‘127.0.0.0
2021-05-18 16:59:21 6244 2
原创 VMware中安装Linux后,ifconfig只有127.0.0.1,SSH终端无法连接
确保 此电脑-右键-管理-服务 里面VMware各项服务都在运行vim /etc/sysconfig/network-scripts/ifcfg-ens33如果最后一行是 ONBOOT=no 把它改成 yes然后 service network restart
2021-05-11 10:43:01 327
原创 裂开!supervisor将我的python版本变成了3.6.8?
今天踩了一个supervisor的坑,我的python版本明明是3.7.8 :python -V Python 3.7.8安装一会儿软件过后,直接提示不认识:python -V bash: /usr/bin/python: No such file or directory而使用python3 -V 却能显示:python3 -V Python 3.6.8我蒙懵逼了,软链接明明用的是python 这里python却不认识。明明安装的是python3.7.8 ,这里却变成了3.6.
2021-04-16 17:02:17 610
原创 centOS下python用ffmpeg将MP3转换成WAV
最近有个任务,把服务器上的mp3转换成wav格式。查了一下 可以这么用:# 先PIP install pydubimport osfrom pydub import AudioSegmentCURRENT_DIR = os.path.dirname(os.path.abspath(__file__))def mp3_to_wav(mp3_path, wav_path): song = AudioSegment.from_mp3(mp3_path) song.export(wa
2021-03-25 14:21:20 312
原创 wget unable to resolve host address
刚安装的虚拟机,wget的时候报错。ping www.baidu.com的时候也报错 name or service not known在 /etc/resolv.conf 后面追加两行:nameserver 8.8.8.8 #google域名服务器nameserver 8.8.4.4 #google域名服务器再ping 还是不行service network restart 后就好了,wget 也好了...
2021-01-12 23:36:49 447
原创 python操作redis zset
前文写了redis的第五种数据结构zset,这篇文章照例用python实现一下。(其它几种数据结构,python客户端和redis客户端的语法还比较一致的,但是zset的一些差别是真的有点大,强烈建议结合前文redis客户端一起阅读)from redis import Redisif __name__ == '__main__': client = Redis(host='192.168.174.129', port=6666, decode_responses=True) try:
2020-12-28 14:08:57 2218
原创 redis的第5种数据结构——zset
前面几篇文章写了redis的4种数据结构——string / hash / list / set, 今天介绍下最后一种数据结构 zset。zset 和 set 的不同之处是,zset多了一个scorezset的命令都是以Z开头1.添加/更新 zadd key [nx|xx] [ch] [incr] score member …默认情况下的返回值:成功添加的新成员的数量> zadd z1 77 tom 90 mike 60 michael(integer) 3如果有序集合中已经存在s
2020-12-27 00:04:41 535
原创 python操作redis set
上一篇文章写了redis的第四种数据结构——set ,这篇文章用python客户端来复现一下。(建议结合上篇文章看,效果更佳)from redis import Redisif __name__ == '__main__': client = Redis(host='x.x.x.x', port=6666, decode_responses=True) try: # 添加元素 print(client.sadd('s1', 1, 2, 3)) # 3
2020-12-26 16:38:02 1664
原创 redis的第四种数据结构——set
前面几篇文章讲了redis的string / hash / list,今天写一下set。redis的集合和数学上的集合是一样的,set命令都以S开头1.添加元素到集合 sadd key member…> sadd s1 1 2 3(integer) 3> sadd s1 3(integer) 0> sadd s1 2 3 4 5(integer) 22.查看集合中的元素 smembers key> smembers s11) "1"2) "2"3) "3"
2020-12-26 15:15:37 219
原创 python操作redis list
上一篇文章写了redis客户端的各种list操作,这篇文章用python客户端来复现一下。(建议结合上篇文章看,效果更佳)from redis import Redisif __name__ == '__main__': client = Redis(host='192.168.174.129', port=6666, decode_responses=True) try: # 左右插入 print(client.rpush('list1', 1, 'a
2020-12-20 13:10:56 290 1
原创 redis的第三种数据结构 list
前几篇文章介绍了redis的string和hash,今天讲一下list。list的命令基本都以L开头1.从右边插入列表 rpush key value1 value2 …> rpush list1 1 a 2(integer) 32.从左边插入列表 lpush key value1 value2 …> lpush list1 0 -1(integer) 53. 查看列表 lrange key start stop> lrange list1 0 -11) "-1"
2020-12-19 20:55:14 220 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人