监控架构-Prometheus-普罗米修斯
目录
1. Prometheus概述
2. Prometheus vs Zabbix
3. Prometheus极速上手指南
3.1 时间同步
3.2 部署Prometheus
3.3 启动Prometheus
3.4 Prometheus监控架构
3.5 补充
配置页面
简单过滤
查看数据
查看图形
http://prometheus.oldboylinux.cn:9090/metrics显示所有键值
4. Prometheus配置
4.1 服务端命令行选项
4.2 配置文件
5. Prometheus的exporter
5.1 概述
5.2 部署node_exporter
5.3 配置prometheus服务端
5.4 检查结果
5.5 prometheus动态配置文件
6. Prometheus过滤语句
6.1 基本过滤
6.2 包含条件的过滤
过滤指定主机的数据
过滤出所有主机非idle的指标.
6.3 小结
6.4 常用函数
rate函数
sum求和
count计数
其他函数
6.5 grafana中使用的 PromQL语句
6.6 复杂语句
7. Pushgateway
7.1 使用流程
7.2 Pushgateway部署
修改服务端配置文件
检查是否添加成功
7.3 书写脚本与提交数据
提交个测试数据
书写脚本
检查结果
脚本写入定时任务
8. 进入Grafana
8.1 概述
8.2 使用流程
添加数据源(别忘记hosts解析)
解决仪表盘没有数据
数据不准
导入第三方仪表盘
9. Altermanager 告警
9.1 Alertmanager部署
9.2 Alertmanager配置
9.3 Prometheus配置
9.4 prometheus告警规则文件
9.5 检查规则
10. 容器监控
10.1 检查
10.2 接入grafana
1. Prometheus概述
1. Prometheus监控架构。使用Golang语言实现。使用简单,学习门槛较高。
2. Prometheus一般与Grafana配合。
2. Prometheus vs Zabbix
指标 | Prometheus | Zabbix |
---|---|---|
语言 | Golang(Go) | PHP,C,GO |
部署 | 二进制,解压即用 | yum,编译,数据库,php依赖 |
是否容易掌握 | 门槛较高 | 容易使用 |
监控方式 | 通过各种exporter,监控一般都是基于http | 各种模板,客户端,自定义监控,各种协议 |
应用场景 | 监控服务,容器,k8s | 监控系统底层,硬件,系统,网络 |
3. Prometheus极速上手指南
角色 | 主机名 | ip |
---|---|---|
prometheus服务端 | prometheus_server_xzb | 10.0.0.65/172.16.1.65 |
grafana | grafana | 10.0.0.66/172.16.1.66 |
docker01 | docker01 | 10.0.0.81/172.16.1.81 |
3.1 时间同步
3.2 部署Prometheus
##创建目录
mkdir -p /app/##解压
tar xf prometheus-2.33.3.linux-amd64.tar.gz -C /app/##创建软连接
ln -s /app/prometheus-2.33.3.linux-amd64/ /app/prometheus##检查版本
/app/prometheus/prometheus --version
目录说明 | |
---|---|
prometheus | prometheus服务端的命令 |
prometheus.yml | 配置文件 |
3.3 启动Prometheus
##进入目录
cd /app/prometheus##前台启动
./prometheus##查看端口 有9090端口便是启动成功
ss -lntup ##浏览器解析访问
10.0.0.65 prometheus.oldboylinux.cn
3.4 Prometheus监控架构
3.5 补充
注意事项:
prometheus默认读取当前目录下面的prometheus.yml配置文件。
后台启动:
nohup /app/prometheus/prometheus &>> /var/log/prometheus.log &
##systemctl管理
vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
After=network.target[Service]
Type=simple
[Unit]
Description=Prometheus Server
After=network.target[Service]
Type=simple
ExecStart=/app/prometheus/prometheus --config.file=/app/prometheus/prometheus.yml --web.listen-address=0.0.0.0:9090 --web.max-connections=512
KillMode=process[Install]
WantedBy=multi-user.targetKillMode=process[Install]
WantedBy=multi-user.target##重启daemon-reload
systemctl daemon-reload ##关闭prometheus
pkill prometheus##开机自启
systemctl enable prometheus.service ##启动
systemctl start prometheus.service ##查看端口
ss -lntup##查看日志
journalctl -f -u prometheus.service
配置页面
简单过滤
查看数据
查看图形
http://prometheus.oldboylinux.cn:9090/metrics显示所有键值
http://prometheus.oldboylinux.cn:9090/metrics
4. Prometheus配置
4.1 服务端命令行选项
prometheus命令行核心选项 | 说明 |
---|---|
--config.file="prometheus.yml" | 指定配置文件,默认是当前目录下在的prometheus.yml |
--web.listen-address="0.0.0.0:9090" | 前端web页面,端口和监听的地址。如果想增加访问认证可以用ngx。 |
--web.max-connections=512 | 并发连接数 |
--storage.tsdb.path="data/" | 指定tsdb数据存放目录 |
--log.level=info | 日志级别。prometheus日志默认输出到屏幕(标准输出) |
--log.format=logfmt | 日志格式。logfmt默认格式。 json格式(日志收集的时候使用) |
4.2 配置文件
##cat prometheus.yml
# my global config
##全局定义部分
global:scrape_interval: 15s ##这个间隔表示,prometheus采集数据的间隔evaluation_interval: 15s #执行对应的rules(规则)间隔,一般报警规则##采集数据的超时时间,默认是10秒#scrape_timeout is set to the global default (10s).
# Alertmanager configuration 用于配置警告信息,alertmanager配置。
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093.
rule_files:# - "first_rules.yml"# - "second_rules.yml"
scrape_configs:##数据采集的配置(客户端)- job_name: "prometheus-server-xzb" ##任务名字.体现采集哪些机器,哪些指标# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:##静态配置文件,直接指定被采集的对象. 修改后要重启- targets: ["localhost:9090"]file_sd_configs:##动态配置文件,动态读取文件内容,然后进行采集,实时监控
5. Prometheus的exporter
5.1 概述
exporter | 说明 |
---|---|
node_exporter | 获取节点基础信息(系统监控) |
服务的exporter | 监控指定服务的 |
5.2 部署node_exporter
##创建目录
mkdir -p /app/exports/##解压到指定目录
tar xf node_exporter-1.3.1.linux-amd64.tar.gz -C /app/exports/##创建软连接
ln -s /app/exports/node_exporter-1.3.1.linux-amd64/node_exporter /bin/##启动
node_exporter &##检查端口和进程 9100 端口
ss -lntup##syatemctl配置
vim /usr/lib/systemd/system/prometheus_node.service
[Unit]
Description=prometheus node_exporter
After=network.target
[Service]
Type=simple
ExecStart=/bin/node_exporter
KillMode=process
[Install]
WantedBy=multi-user.target##重启daemon
systemctl restart daemon-reload
5.3 配置prometheus服务端
## 添加node-exports节点
cat /app/prometheus/prometheus.yml
global:scrape_interval: 15s evaluation_interval: 15s
alerting:alertmanagers:- static_configs:- targets:
rule_files:
scrape_configs:- job_name: "prometheus-server-xzb"static_configs:- targets: ["localhost:9090"]- job_name: "prometheus-all-node-exports"static_configs:- targets: - "localhost:9100"- "prometheus.oldboylinux.cn:9100"
5.4 检查结果
5.5 prometheus动态配置文件
1. 获取的exporter域名+端口,写入配置文件,prometheus可以定时读取并加入到prometheus中。
2. 用于解决,大量主机添加、删除的操作
##增加动态读取
vim /app/prometheus/prometheus.yml
...
...
scrape_configs:- job_name: "prometheus-server-xzb"static_configs:- targets: ["localhost:9090"]- job_name: "prometheus-all-node-exports"static_configs:- targets: - "localhost:9100"- "prometheus.oldboylinux.cn:9100"file_sd_configs: ##动态读取与加载配置文件。- files: ##指定要加载的配置文件- /app/prometheus/discovery_node_exporter.yml refresh_interval: 5s ##读取间隔##动态加载的配置文件格式
cat discovery_node_exporter.yml
[{ "targets": [ "localhost:9100","prometheus.oldboylinux.cn:9100"]}
]
6. Prometheus过滤语句
6.1 基本过滤
1. 直接写上prometheus的键值(key)
2. 比如通过node_exporter获取所有主机可用内存输入node_memory_MemFree_bytes
3. 过滤负载: node_load1
4. 查看所有键值
6.2 包含条件的过滤
过滤指定主机的数据
node_cpu_seconds_total{instance="prometheus.oldboylinux.cn:9100"}
格式说明,过滤出指定的内容,需要使用{key(属性)="想要的值"}
过滤出所有主机非idle的指标.
node_cpu_seconds_total{mode!="idle"}
同时满足上面的条件:
node_cpu_seconds_total{mode!="idle",instance="prometheus.oldboylinux.cn:9100"}
6.3 小结
prometheus过滤中的符号 | 含义 |
---|---|
= | 等于 |
!= | 不等于 |
=~ | 支持正则,匹配 |
!~ | 支持正则,不匹配 |
1. 推荐先找出你要的键值,观察键值里面的属性
2. 过滤格式: node_cpu_seconds_total{mode!="idle"}
键值{属性=“值”}
6.4 常用函数
rate函数
计算范围向量中时间序列的每秒平均增长率。单调性的中断(例如由于目标重新启动而导致的计数器重置)会自动调 整。此外,计算推断到时间范围的末端,允许错过刮擦或刮擦周期与该范围的时间段的不完美对齐。
rate(http_requests_total{job="api-server"}[5m])
rate只能与计数器一起使用。它最适合警报和缓慢移动计数器的图形。
##过去一分钟内,系统每秒花费的平均CPU时间
node_cpu_seconds_total[1m]##排除idle
node_cpu_seconds_total{mode!="idle"}[1m]## rate []一般配合函数实现统计指定范围的内容.
rate(node_cpu_seconds_total{mode!="idle"}[1m])
sum求和
计算总和
count计数
其他函数
Query functions | Prometheushttps://prometheus.io/docs/prometheus/latest/querying/functions/
6.5 grafana中使用的 PromQL语句
## 可用内存使用率=用了的/总共的 * 100
((node_memory_MemTotal_bytes{instance="prometheus.oldboylinux.cn:9100", job="prometheus-all-node-exports"}-node_memory_MemFree_bytes{instance="prometheus.oldboylinux.cn:9100", job="prometheus-all-node-exports"})/node_memory_MemTotal_bytes{instance="prometheus.oldboylinux.cn:9100", job="prometheus-all-node-exports"})*100## 内存总大小- 剩余内存 = 用了多少
6.6 复杂语句
##计算内存使用率
(总内存-剩余)/总共
= 可用/总共
((node_memory_MemTotal_bytes-node_memory_MemFree_bytes)/node_memory_MemTotal_bytes)*100
7. Pushgateway
7.1 使用流程
1. 部署,启动pushgateway,服务端ip/域名+端口,写入配置(动态、静态)
2. 书写脚本获取你要的信息,把信息发送到pushgateway中。
7.2 Pushgateway部署
##创建目录
mkdir -p /app/pushgateway## 解压到指定目录
tar xf pushgateway-1.4.1.linux-amd64.tar.gz -C /app/pushgateway/## 创建软连接
ln -s /app/pushgateway/pushgateway-1.4.1.linux-amd64/pushgateway /bin/## 书写systemctl配置
cat /usr/lib/systemd/system/pushgateway.service
[Unit]
Description=prometheus pushgateway
After=network.target
[Service]
Type=simple
ExecStart=/bin/pushgateway
KillMode=process
[Install]
WantedBy=multi-user.target## 重启
systemctl daemon-reload## 自启动
systemctl enable pushgateway.service ##启动
systemctl start pushgateway.service ##检查进程和端口 端口9091
修改服务端配置文件
##修改服务端配置文件
cat /app/prometheus/prometheus.yml
...
...
scrape_configs:- job_name: "prometheus-server-xzb"static_configs:- targets: ["localhost:9090"]- job_name: "prometheus-all-node-exports"static_configs:- targets: - "localhost:9100"- "prometheus.oldboylinux.cn:9100"file_sd_configs:- files:- /app/prometheus/discovery_node_exporter.ymlrefresh_interval: 5s- job_name: "prometheus-pushgateway"static_configs:- targets: - "localhost:9091"
检查是否添加成功
7.3 书写脚本与提交数据
提交个测试数据
##检查cpu核心数
cat /server/scripts/diy_push_cpu_cores.sh
#!bin/bash
#1.vars
cores=`lscpu |grep 'CPU(s)'|awk 'NR==1 {print $2}'`
job="pushgateway_metrics"
ins="prometheus.oldboylinux.cn:9100"
pushgw="http://prometheus.oldboylinux.cn:9091"#2.
echo "cpu_cores $cores"| \
curl --data-binary @- ${pushgw}/metrics/job/${job}/instance/${ins}##写法 ##其中分组名和实例名可以自己设置
curl data-binary @- http://prometheus.oldboylinux.cn:9091/metrics/job/分组名/instance/实例名
书写脚本
#!/bin/basih
##1.vars
job_name="pushgateway_metrics"
ins="prometheus.oldboylinux.cn:9100"
pushgw="http://prometheus.oldboylinux.cn:9091"#2.取值
disk_sda_root_total=`df |awk '$NR=="/" {print $2}'`
disk_sda_root_free=`df |awk '$NR=="/" {print $4}'`
disk_sda_root_used=`df |awk '$NR=="/" {print $3}'`##想pushgateway发送请求
echo "disk_sda_total ${disk_sda_root_total}"| \
curl --data-binary @- ${pushgw}/metrics/job/${job_name}/instance/${ins}
echo "disk_sda_free ${disk_sda_root_free}"| \
curl --data-binary @- ${pushgw}/metrics/job/${job_name}/instance/${ins}
echo "disk_sda_used ${disk_sda_root_used}"| \
curl --data-binary @- ${pushgw}/metrics/job/${job_name}/instance/${ins}
检查结果
脚本写入定时任务
##同步时间
*/2 * * * * /sbin/ntpdate ntp1.aliyun.com &>/dev/null
##prometheus pushgateway
* * * * * sh /server/scripts/pushgateway-disk-usage.sh &>/dev/null
8. 进入Grafana
8.1 概述
1. prometheus webui一般用于调试PromQL语句(查询语句)
2. 展示交给Grafana。本质:Grafana执行PromQL语句(查询语句),然后通过Grafana进行展示
参考文章:
监控架构- Grafana-监控大屏-CSDN博客
8.2 使用流程
添加数据源(别忘记hosts解析)
解决仪表盘没有数据
##修改的查询语句主要关注,job部分和instance。
(time()-process_start_time_seconds{instance="prometheus.oldboylinux.cn:9100",job="prometheus-all-node-exports"})
数据不准
(time()-node_boot_time_seconds{instance="prometheus.oldboylinux.cn:9100", job="prometheus-all-node-exports"})##原因:process_start_time_seconds获取的是Prometheus服务端运行多久(进程)
导入第三方仪表盘
9. Altermanager 告警
9.1 Alertmanager部署
##创建目录
mkdir -p /app/altermanager/##解压到指定目录
tar xf alertmanager-0.24.0.linux-amd64.tar.gz -C /app/altermanager/## 创建软连接
ln -s /app/altermanager/alertmanager-0.24.0.linux-amd64/alertmanager /bin/## systemectl配置书写
[Unit]
Description=prometheus pushgateway
After=network.target
[Service]
Type=simple
ExecStart=/bin/alertmanager --config.file=/app/altermanager/alertmanager-0.24.0.linux-amd64/alertmanager.yml --web.listen-address=0.0.0.0:9093
KillMode=process
[Install]
WantedBy=multi-user.target##检查端口
ss -lntup|grep alert
9.2 Alertmanager配置
##alertmanager配置详解
global: ##全局定义部分。配置发件人信息.resolve_timeout: ##5m dns解析的超时时间.smtp_from: ##发件人smtp_smarthost: ##smtp服务器smtp_hello: ##qq.com 163.com 邮箱厂商smtp_auth_username: ##邮箱名字smtp_auth_password: ##授权码smtp_require_tls:falseroute: ##配置收件人间隔时间,收件方式group_by: ['alertname'] group_wait: 30sgroup_interval: 5mrepeat_interval: 1h ##重复告警时间. eg。11:00 发送了1次告警,12:00 再发送1次receiver: 'email' ##采取什么方式接受告警.
##完整的配置文件
global:resolve_timeout: 5msmtp_from: 'xing775288271@163.com'smtp_smarthost: 'smtp.163.com:465'smtp_hello: '163.com'smtp_auth_username: 'xing775288271@163.com'smtp_auth_password: 'THqpcgCf5JqBDmVZ'smtp_require_tls: false
route:group_by: ['alertname']group_wait: 30sgroup_interval: 5mrepeat_interval: 1hreceiver: 'email'
receivers:- name: 'email'email_configs:- to: '775288271@qq.com'send_resolved: true
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']
9.3 Prometheus配置
##prometheus服务端配置文件
cat /app/prometheus/prometheus.yml
global:scrape_interval: 15s evaluation_interval: 15s
alerting:alertmanagers:- static_configs:- targets:- "prometheus.oldboylinux.cn:9093"
rule_files: - "/app/prometheus/prometheus_alert_rules.yml"
scrape_configs:- job_name: "prometheus-server-xzb"static_configs:- targets: ["localhost:9090"]
...
...
9.4 prometheus告警规则文件
##prometheus告警规则文件
vim /app/prometheus/prometheus_alert_rules.yml
groups:- name: check_node_statusrules:- alert: check_node_is_upexpr: up{instance="prometheus.oldboylinux.cn:9100", job="prometheus-all-node-exports"}==0for: 15slabels:severity: 1team: nodeannotations:summary: "{{ $labels.instance }} 节点停止运行超过15s!!!"
9.5 检查规则
10. 容器监控
##监控容器
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadvisor --privileged --device=/dev/kmsg google/cadvisor:latest##prometheus服务端的配置文件
vim /app/prometheus/prometheus.yml
...
...- job_name: "prometheus-pushgateway"static_configs:- targets: - "localhost:9091"- job_name: "cadvisor-docker"static_configs: - targets:- "docker01.oldboylinxu.cn:8080"##hosts解析##重启prometheus
10.1 检查
10.2 接入grafana
grafana id号:10619
相关文章:

监控架构-Prometheus-普罗米修斯
目录 1. Prometheus概述 2. Prometheus vs Zabbix 3. Prometheus极速上手指南 3.1 时间同步 3.2 部署Prometheus 3.3 启动Prometheus 3.4 Prometheus监控架构 3.5 补充 配置页面 简单过滤 查看数据 查看图形 http://prometheus.oldboylinux.cn:9090/metrics显示…...

Kylin Server V10 下自动安装并配置Kafka
Kafka是一个分布式的、分区的、多副本的消息发布-订阅系统,它提供了类似于JMS的特性,但在设计上完全不同,它具有消息持久化、高吞吐、分布式、多客户端支持、实时等特性,适用于离线和在线的消息消费,如常规的消息收集、…...

windows环境下cmd窗口打开就进入到对应目录,一般人都不知道~
前言 很久以前,我还在上一家公司的时候,有一次我看到我同事打开cmd窗口的方式,瞬间把我惊呆了。原来他打开cmd窗口的方式,不是一般的在开始里面输入cmd,然后打开cmd窗口。而是另外一种方式。 我这个同事是个技术控&a…...

企微SCRM价格解析及其性价比分析
内容概要 在如今的数字化时代,企业对于客户关系管理的需求日益增长,而企微SCRM(Social Customer Relationship Management)作为一款新兴的客户管理工具,正好满足了这一需求。本文旨在为大家深入解析企微SCRM的价格体系…...

【SpringMVC】记录一次Bug——mvc:resources设置静态资源不过滤导致WEB-INF下的资源无法访问
SpringMVC 记录一次bug 其实都是小毛病,但是为了以后再出毛病,记录一下: mvc:resources设置静态资源不过滤问题 SpringMVC中配置的核心Servlet——DispatcherServlet,为了可以拦截到所有的请求(JSP页面除外…...

【React】React 生命周期完全指南
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 React 生命周期完全指南一、生命周期概述二、生命周期的三个阶段2.1 挂载阶段&a…...

【NLP】使用 SpaCy、ollama 创建用于命名实体识别的合成数据集
命名实体识别 (NER) 是自然语言处理 (NLP) 中的一项重要任务,用于自动识别和分类文本中的实体,例如人物、位置、组织等。尽管它很重要,但手动注释大型数据集以进行 NER 既耗时又费钱。受本文 ( https://huggingface.co/blog/synthetic-data-s…...

【C++练习】二进制到十进制的转换器
题目:二进制到十进制的转换器 描述 编写一个程序,将用户输入的8位二进制数转换成对应的十进制数并输出。如果用户输入的二进制数不是8位,则程序应提示用户输入无效,并终止运行。 要求 程序应首先提示用户输入一个8位二进制数。…...

Vue功能菜单的异步加载、动态渲染
实际的Vue应用中,常常需要提供功能菜单,例如:文件下载、用户注册、数据采集、信息查询等等。每个功能菜单项,对应某个.vue组件。下面的代码,提供了一种独特的异步加载、动态渲染功能菜单的构建方法: <s…...

云技术基础学习(一)
内容预览 ≧∀≦ゞ 声明导语云技术历史 云服务概述云服务商与部署模式1. 公有云服务商2. 私有云部署3. 混合云模式 云服务分类1. 基础设施即服务(IaaS)2. 平台即服务(PaaS)3. 软件即服务(SaaS) 云架构云架构…...

【优选算法篇】微位至简,数之恢宏——解构 C++ 位运算中的理与美
文章目录 C 位运算详解:基础题解与思维分析前言第一章:位运算基础应用1.1 判断字符是否唯一(easy)解法(位图的思想)C 代码实现易错点提示时间复杂度和空间复杂度 1.2 丢失的数字(easy࿰…...

MFC工控项目实例二十九主对话框调用子对话框设定参数值
在主对话框调用子对话框设定参数值,使用theApp变量实现。 子对话框各参数变量 CString m_strTypeName; CString m_strBrand; CString m_strRemark; double m_edit_min; double m_edit_max; double m_edit_time2; double …...

Java | Leetcode Java题解之第546题移除盒子
题目: 题解: class Solution {int[][][] dp;public int removeBoxes(int[] boxes) {int length boxes.length;dp new int[length][length][length];return calculatePoints(boxes, 0, length - 1, 0);}public int calculatePoints(int[] boxes, int l…...

【前端】Svelte:响应性声明
Svelte 的响应性声明机制简化了动态更新 UI 的过程,让开发者不需要手动追踪数据变化。通过 $ 前缀与响应式声明语法,Svelte 能够自动追踪依赖关系,实现数据变化时的自动重新渲染。在本教程中,我们将详细探讨 Svelte 的响应性声明机…...

PostgreSQL 性能优化全方位指南:深度提升数据库效率
PostgreSQL 性能优化全方位指南:深度提升数据库效率 别忘了请点个赞收藏关注支持一下博主喵!!! 在现代互联网应用中,数据库性能优化是系统优化中至关重要的一环,尤其对于数据密集型和高并发的应用而言&am…...

Flutter鸿蒙next 使用 BLoC 模式进行状态管理详解
1. 引言 在 Flutter 中,随着应用规模的扩大,管理应用中的状态变得越来越复杂。为了处理这种复杂性,许多开发者选择使用不同的状态管理方案。其中,BLoC(Business Logic Component)模式作为一种流行的状态管…...

Gen-RecSys——一个通过生成和大规模语言模型发展起来的推荐系统
概述 生成模型的进步对推荐系统的发展产生了重大影响。传统的推荐系统是 “狭隘的专家”,只能捕捉特定领域内的用户偏好和项目特征,而现在生成模型增强了这些系统的功能,据报道,其性能优于传统方法。这些模型为推荐的概念和实施带…...

Android 重新定义一个广播修改系统时间,避免系统时间混乱
有时候,搞不懂为什么手机设备无法准确定义系统时间,出现混乱或显示与实际不符,需要重置或重新设定一次才行,也是真的够无语的!! vendor/mediatek/proprietary/packages/apps/MtkSettings/AndroidManifest.…...

第3章:角色扮演提示-Claude应用开发教程
更多教程,请访问claude应用开发教程 设置 运行以下设置单元以加载您的 API 密钥并建立 get_completion 辅助函数。 !pip install anthropic# Import pythons built-in regular expression library import re import anthropic# Retrieve the API_KEY & MODEL…...

【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
1.问题描述: 人脸活体检测页面会有声音提示,如何控制声音开关? 解决方案: 活体检测暂无声音控制开关,但可通过其他能力控制系统音量,从而控制音量。 活体检测页面固定音频流设置的是8(无障碍…...

【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
问题复现 项目上历史项目为解决漏洞扫描从Tomcat 6.0升级到了9.0版本,服务启动的日志显示如下警告,数据源是通过JNDI方式在server.xml中配置的,控制台上狂刷无法找到表空间的错误(没截图) 报错: 06-Nov-…...

Git LFS
Git LFS(Git Large File Storage)是一个用于管理和版本控制大文件的工具,它扩展了 Git 的功能,帮助处理大文件或二进制文件的存储和管理问题。 为什么需要 Git LFS? Git 默认是针对文本文件进行优化的,尤…...

基于Redis缓存机制实现高并发接口调试
创建接口 这里使用的是阿里云提供的接口服务直接做的测试,接口地址 curl http://localhost:8080/initData?tokenAppWithRedis 这里主要通过参数cacheFirstfalse和true来区分是否走缓存,正常的业务机制可能是通过后台代码逻辑自行控制的,这…...

数字化转型实践:金蝶云星空与钉钉集成提升企业运营效率
数字化转型实践:金蝶云星空与钉钉集成提升企业运营效率 本文介绍了深圳一家电子设备制造企业在数字化转型过程中,如何通过金蝶云星空与钉钉的高效集成应对挑战、实施解决方案,并取得显著成果。集成项目在提高沟通效率、自动化审批流程和监控异…...

Flutter 鸿蒙next 中使用 MobX 进行状态管理
Flutter & 鸿蒙next 中使用 MobX 进行状态管理 在应用开发中,状态管理是一个至关重要的环节,特别是在复杂的Flutter或鸿蒙next项目中。状态的变化往往会影响UI的更新,因此,选择一种高效、灵活的状态管理工具显得尤为重要。Mo…...

1.62亿元!812个项目立项!上海市2024年度“科技创新行动计划”自然科学基金项目立项
本期精选SCI&EI ●IEEE 1区TOP 计算机类(含CCF); ●EI快刊:最快1周录用! 知网(CNKI)、谷歌学术期刊 ●7天录用-检索(100%录用),1周上线; 免费稿件评估 免费匹配期…...

Redis数据库测试和缓存穿透、雪崩、击穿
Redis数据库测试实验 实验要求 1.新建一张user表,在表内插入10000条数据。 2.①通过jdbc查询这10000条数据,记录查询时间。 ②通过redis查询这10000条数据,记录查询时间。 3.①再次查询这一万条数据,要求根据年龄进行排序&#…...

[vulnhub] DarkHole: 2
https://www.vulnhub.com/entry/darkhole-2,740/ 端口扫描主机发现 探测存活主机,185是靶机 # nmap -sP 192.168.75.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-08 18:02 CST Nmap scan report for 192.168.75.1 Host is up (0.…...

《XGBoost算法的原理推导》12-2 t轮迭代中对样本i的预测值 公式解析
本文是将文章《XGBoost算法的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。 好的,公式(12-2)表示的是 XGBoost 在第 t t t 轮迭代中对样本 i i i 的预测值。它说明了在第 t t t 轮迭代中,模型的预测是通过累加之前…...

./bin/mindieservice_daemon启动成功
接MindIE大模型测试及报错Fatal Python error: PyThreadState_Get: the function must be called with the GIL held,-CSDN博客经过调整如下红色部分参数,昇腾310P3跑起来了7b模型: rootdev-8242526b-01f2-4a54-b89d-f6d9c57c692d-qjhpf:/home/apulis-de…...