当前位置: 首页 > news >正文

遥测数据采集工具Grafana Alloy

介绍

Alloy是Grafana产品公司旗下的一款新主推遥测数据采集工具,Grafana Alloy也是一个开源OpenTelemetry收集器,具有内置 Prometheus管道并支持指标、日志、跟踪和配置文件。Alloy支持为OTEL、Prometheus、Pyroscope、Loki等服务提供许多指标、日志、跟踪等原生数据管道以及数据采集功能。Alloy在Grafana产品生态中,用于替代Promital、Agent两个采集程序,Alloy提供了强大和灵活的模块组件配置功能,支持远比原Agent工具更多的数据格式处理功能和更多样的采集来源端、多平台数据转换能力;并且支持自定义配置组件、数据过滤、数据管道转发、本地配置、云端配置等,官方声明Alloy对更多平台协议数据兼容性更好、安全性和数据配置调试能力更强;

注:推出Alloy的同时官方也声明,不在维护Grafana Agent现有程序,后续Grafana Agent已被弃用,并将会持续到2025年10月31日为止,在2025年11月1日终止使用(EOL);官方建议迁移到Grafana Alloy,因此还在用Grafana Agent的同学,也因该尽快迁移到Grafana Alloy采集工具上;

官网

官网:Grafana Alloy | OpenTelemetry Collector distribution

文档:Grafana Alloy | Grafana Alloy documentation

下载

从Github获取已打包的二进制文件,支持linux、mac、windows等操作系统,按操作系统环境下载即可。

Github发包路径:https://github.com/grafana/alloy/releases/tag/v1.4.3

环境说明

为了方便演示,本地以windows环境为主,因此下载使用alloy-windows-amd64.exe.zip解压包,实际windows与linux环境使用配置文件一样,可以直接将本地调试好的yml配置文件复制到linux环境下使用;

安装Alloy

Alloy需要安装在应用服务所在主机上才能进行抓取,下载alloy-windows-amd64.exe.zip解压包后,解压到任意目录(非中文),在alloy-windows-amd64.exe程序同目录下创建config.alloy文件(此为启动加载配置文件)

Alloy命令启动配置

// 公开或私用组件指标模式(默认"--stability.level=generally-available") 
alloy-windows-amd64.exe run config.alloy --stability.level=public-preview // 实验性模式 
alloy-windows-amd64.exe run config.alloy --stability.level=experimental // linux后台启动 
//nohup ./alloy-linux-amd64 run config.alloy > log.out 2>&1 &

需要注意的是,--stability.level表示当前启动稳定模式,experimental表示开放实验性功能(即一些未成熟的可用功能,生产不推荐)用于配置调试用,public-preview表示开放公共可预览特性等功能,generally-available表示已经成熟普遍可用的功能(默认,生产环境因用此配置);

更多详情配置参考官方:The run command | Grafana Alloy documentation

关于性能消耗

官方相关资源采集过程中性能消耗说明,参考:Estimate Grafana Alloy resource usage | Grafana Alloy documentation

Alloy基础配置

采集日志到Loki

// 收集日志
local.file_match "default" {path_targets = [{__path__    = "/data/log/info-*.log",service     = "systemName",}]
}// 记录采集位置
loki.source.file "default" {targets               = local.file_match.default.targetsforward_to            = [loki.write.default.receiver]
}// 日志发送loki
loki.write "default" {endpoint {url = "http://127.0.0.1:3100/loki/api/v1/push"}
}

组件说明:

  • local.file_match :本地文件加载路径与K/V类型自定义标签配置,path_targets为数组,支持多个路径配置,__path__支持通配符用法,如:__path__ = "/data/log/info-*.log",加载以info为前缀的适配log文件
  • loki.source.file:从来源目标提取文件日志数据,并分发给目标组件
  • loki.write:推送日志到Loki服务目标

采集指标到Prometheus

Alloy本身提供了多种平台与服务的指标抓取、处理、分发能力,并通过prometheus进行远端收集与分析;如:kafka、oracle、mysql、postgres、redis、windows、unix等,内置功能支持直接配置采集端点即可使用,简化了安装各种端点组件来使用,使部署与实施变得更容易;

// 收集alloy指标
prometheus.exporter.self "defalut" { }// 收集windows host指标
prometheus.exporter.windows "defalut" { enabled_collectors  = ["cpu","cs","logical_disk","net","os","service","system"]
}// 抓取目标组件指标
prometheus.scrape "defalut" {targets    = array.concat(prometheus.exporter.self.defalut.targets, prometheus.exporter.windows.defalut.targets)forward_to = [prometheus.remote_write.default.receiver]job_name   = "alloy_otel"
}// 指标发送
prometheus.remote_write "default" {endpoint {url = "http://127.0.0.1:9090/api/v1/write"}
}

组件说明

  • prometheus.exporter.self: 收集alloy自身指标
  • prometheus.exporter.windows:收集windows 主机运行指标,已启用的采集指标,参见:enabled_collectors,非启用指标名则不采集;
  • prometheus.scrape:抓取目标组件指标数据,并将数据分发给目标组件
  • prometheus.remote_write:将指标数据推送给prometheus远程服务

Alloy支持的promethues指标组件如下:prometheus | Grafana Alloy documentation

集OTEL协议数据

OTEL(开放式遥测)是一种用于收集、处理和可视化软件性能和信任度数据的标准和框架,与供应商和工具无关,这意味着它可以与各种各样的可观察性后端一起使用。

Alloy支持多种平台和服务的OTEL数据收集、处理、分发,如:otelhttp、awss3、kafka、loki、prometheus、datadog、zipkin等;

// 接收otel协议转发数据
otelcol.receiver.otlp "default" {http {}grpc {endpoint = "0.0.0.0:4317"}output {metrics = [otelcol.processor.batch.default.input]logs    = [otelcol.processor.batch.default.input]traces  = [otelcol.processor.batch.default.input]}
}
// 批量收集发送,用于本地缓冲数据
otelcol.processor.batch "default" {output {metrics = [otelcol.exporter.otlp.default.input]logs    = [otelcol.exporter.otlp.default.input]traces  = [otelcol.exporter.otlp.default.input]}
}
// 通过gRPC发送otlp数据
otelcol.exporter.otlp "default" {client {endpoint = "192.168.1.100:4317"tls { insecure = true}}
}

组件说明

  • otelcol.receiver.otlp:接收otel协议转发数据
  • otelcol.processor.batch: 批量收集发送,用于本地缓冲数据,从而降低数据传输次数,提高数据压缩率,控制每批数据大小和处理时间,提升性能
  • otelcol.exporter.otlp:通过gRPC发送otlp数据到目标OTEL接收服务端

OpenTelemetry代理

OpenTelemetry是API、SDK 和工具的集合。使用它来检测、生成、收集和导出遥测数据(指标、日志和跟踪),以帮助您分析软件的性能和行为。

因此本章演示项目中,同样依赖opentelemetry-sdk,在程序的JVM启动命令中加入opentelemetry-javaagent代理jar包,从而抓取otel协议数据(指标、日志、链路)推送到endpoint目标服务Collector收集端。

opentelemetry-javaagent.jar从github上下载:GitHub - open-telemetry/opentelemetry-java-instrumentation: OpenTelemetry auto-instrumentation and instrumentation libraries for Java

相关JVM参数配置详见官方文档:Configure the SDK | OpenTelemetry

注:上述示例,指向的是本地Alloy采集服务代理端口,Alloy支持otel协议数据接收与管道转发功能;

SpringBoot全链路追踪

搭建日志链接路平台

由于之前文章中已讲解搭建过《Grafana,Loki,Tempo,Prometheus,Agent搭建日志链路监控平台》本章不在重复搭建过程,可点击此访问:Grafana,Loki,Tempo,Prometheus,Agent搭建日志链路监控平台_grafana tempo-CSDN博客

略....

SpringBoot项目搭建

同样之前文章中讲解过《SpringBoot+Prometheus采集Metrics指标数据》,该章中的springboot项目做为本章应用程序演示示例,可点击此访问:SpringBoot+Prometheus采集Metrics指标数据_prometheus metrics-CSDN博客

注:安装Prometheus后,无需在配置文件中配置采集springboot的端点参数,本章将通过Alloy去分发推送springboot指标数据到Prometheus中

略...

IDEA中配置opentelemetry代理

在右上角 Select Run/Debug Configurations》Edit Configurations》找到对应用主程序入口类

在VM options中填入如下参数

-javaagent:D:\\test\\opentelemetry-javaagent.jar 
-Dotel.service.name=otel_test 
-Dotel.exporter.otlp.endpoint=http://localhost:4317 
-Dotel.traces.exporter=otlp 
-Dotel.metrics.exporter=otlp 
-Dotel.logs.exporter=none 
-Dotel.metric.export.interval=30000 
-Dotel.exporter.otlp.insecure=true

注:其它-Dotel.logs.exporter=none 表示log日志不走otel协议推送,因为日志一般会输出到日志文件中,从文件中加载日志能记录整个应用程序的启动过程,而otel需要在应用服务启动中并且agent代理生效后,才能正常抓取otel协议日志数据,因此会有部份缺失;通过Alloy直接抓取本地日志文件内容,能保证日志数据的全生命周期流程完整性;

配置SpringBoot项目日志格式输出traceID=%X{trace_id}到log文件中,通常在logack.xml或log4j2.xml中配置,如果没有独立设置日志配置文件,或修改springboot本身的application.yml中loggin.pattern.file配置,如下:

%d{yyyy-MM-dd HH:mm:ss.SSS} %level traceID=%X{trace_id} %thread %class{36}:%L - %m%n%wEx

配置springboot监控指标

在pom.xml中添加prometheus指标监控,添加springboot端点指标与健康检查模块;

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- prometheus依赖 -->
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId><version>1.11.0</version>
</dependency>

在application.yml添加以下健康服务检测功能以及开放端点

# 启用服务健康检测,注册中心将通过http://host:port/actuator/health 检测服务的存活,默认10s一次
management:
#  server:
#    address: 127.0.0.1
#    port: 8081endpoints:web:cors:# 跨域配置开放所有,CORS默认处于禁用状态allowed-origins: "*"allowed-methods: "*"discovery:# 启用一个接口可以返回所有端点信息enabled: trueexposure:include:# 开放所有端点health,info,metrics,通过actuator/+端点名就可以获取相应的信息。开发用*,上生产请取消。默认打开health和info- "*"# 某些端点除外,不做开启exclude:- env- beans- info- configprops- health- heapdump- shutdown- threaddump- loggers- conditionsendpoint:shutdown:enabled: truehealth:# 开启后打印详细信息show-details: always

启动Springboot服务

完成上述流程后,在IDEA中启动SpringBoot服务

略...

配置Alloy组件

在Alloy安装目录中,修改配置,完整的config.alloy配置如下:


// =====================Otel配置===================================
// 接收otel协议转发数据
otelcol.receiver.otlp "default" {http {}grpc {endpoint = "0.0.0.0:4317"}output {//logs 通过 loki.source.file 采集metrics = [otelcol.exporter.prometheus.default.input]traces  = [otelcol.exporter.otlp.tempo_default.input, otelcol.connector.spanlogs.default.input, otelcol.connector.servicegraph.default.input,]}
}
// 从otel中输出日志loki
otelcol.exporter.loki "default" {forward_to = [loki.write.default.receiver]
}
// 通过gRPC发送otlp链路数据到tempo服务
otelcol.exporter.otlp "tempo_default" {client {endpoint = "192.168.1.100:4317"tls { insecure = true        	insecure_skip_verify = true}}
}
// 从otel中输出指标数据到prometheus
otelcol.exporter.prometheus "default" {forward_to = [prometheus.remote_write.default.receiver]
}// =====================Loki配置===================================
// 读取指定路径日志文件和配置标签
local.file_match "default" {path_targets = [{__path__      = "D:/Workspaces/idea_2/TraceCloud/logs/producer-info.log",service_name  = "producer-log-197",system        = "producer",}]
}
// 记录采集位置
loki.source.file "default" {encoding     = "UTF-8"targets      = local.file_match.default.targetsforward_to   = [loki.write.default.receiver]
}
// 日志发送loki
loki.write "default" {endpoint {url = "http://192.168.1.100:3100/loki/api/v1/push"}
}// =====================Span日志记录配置===================================
otelcol.connector.spanlogs "default" {roots = truespan_attributes = ["http.method", "http.target"]output {logs = [otelcol.exporter.loki.default.input]}
}// =====================服务图配置===================================
otelcol.connector.servicegraph "default" {dimensions = ["http.method", "http.target"]output {metrics = [otelcol.exporter.prometheus.default.input]}
}// =====================Prometheus配置===================================
// 收集alloy指标
prometheus.exporter.self "defalut" { }
// 收集windows host指标
prometheus.exporter.windows "defalut" { enabled_collectors  = ["cpu","cs","logical_disk","net","os","service","system"]
}
// 指标抓取
prometheus.scrape "defalut" {targets    = array.concat(prometheus.exporter.self.defalut.targets, prometheus.exporter.windows.defalut.targets)forward_to = [prometheus.remote_write.default.receiver]job_name   = "producer_node"
}
// 抓取远程服务指标
prometheus.scrape "remote_default" {targets = [{"__address__" = "localhost:8082"}]scheme = "http"metrics_path = "/actuator/prometheus"scrape_interval = "30s"scrape_timeout = "10s"job_name = "producer_samples"	forward_to = [prometheus.remote_write.default.receiver]
}
// 指标发送
prometheus.remote_write "default" {endpoint {name = "producer"url  = "http://192.168.1.100:9090/api/v1/write"}
}

运行Alloy

在通过windows系统的CMD命令行窗口进入到安装目录(以本地实际安装目录为准):cd D:\test\alloy-windows-amd64>

D:\test\alloy-windows-amd64> ./alloy-windows-amd64.exe run ./config.alloy

服务拓扑图

App在运行中产生各种日志、指标、otel数据等,通过Agent推送到Alloy或Alloy主动抓取数据,最后在本地Alloy处理后根据不同能力的收集服务,分发推送到服务端进行存储,统一在Grafana端进行应用展示;

服务接口测试

SpringBoot健康检查

http://localhost:8082/actuator

Prometheus端口数据

http://localhost:8082/actuator/prometheus

HTTP测试接口

http://localhost:8082/api/producer (注意:本地示例服务启用的8082端口)

Loki日志与Tempo链路

向springboot服务发起http请求后,后端服务会打印日志并输出到日志文件中,opentelemetry-javaagent.jar代理通过探针技术,抓取springboot运行过程中的数据、跨度、指标等,通过otel协议推送到指定Alloy采集端,进行处理并分发到Loki和Tempo中,以下是通过Loki查询出打印日志数据,通过输出日志行中的所带的TraceID(跟踪埋点ID),点击关联上Tempo查询该TraceId全链接执行过程,展示分析出的每一步耗时与跨度信息等;

Dashboards图表展示

通过Alloy抓取各类指标、日志、链路等遥测数据后,推送到相关服务后,可以很方便的在Grafana已集成的环境中进行分析与展示,官方也提供了很多共享Dashboards图表资源,可直接导入到本地环境中进行使用;

共享Dashboards网址:Grafana dashboards | Grafana Labs

JVM指标监控

通过Otel协议获取JVM指标数据后,发送到Alloy进行接收,并推送到Prometheus中进行存储,通过图表进行展示;

图表来源于官方共享Dashboards,ID:4071 (JVM (Micrometer))

共享Dashboards网址:Grafana dashboards | Grafana Labs

Windows主机资源监控图表

通过Alloy抓取windows主机上的指标数据,推送到Prometheus中进行存储,通过图表进行展示;

图表来源于官方共享Dashboards,ID:12422 (Windows Node (fixed for v0.13.0+))

SpringBoot监控资源图表

通过Alloy抓取主动抓取SpringBoot上的/actuator/prometheus端点数据,推送到Prometheus中进行存储;

图表来源于官方共享Dashboards,ID:12900 (SpringBoot APM Dashboard)

总结

Alloy 非常灵活,你可以轻松配置它以满足您在本地、仅限云端或两者混合的需求。Alloy 使用 120 多个组件从应用程序、数据库和 OpenTelemetry 收集器收集遥测数据,并且 Alloy还支持创建和共享自定义组件。Alloy支持使用多个生态系统进行收集,包括 OpenTelemetry 和 Prometheus。遥测数据可以推送至Alloy,或者Alloy可以从您的数据源中提取数据。

虽然Alloy作为一款开源产品推向市场的时间比较新,但官方计划约每6周发布一个新或小版本,因此做为Grafana Agent替换工具,也是后续Grafana生态系例中主力采集终端工具,相信会投入更多的资源去完善Alloy使用问题与增加更多Alloy功能,对于开发者来说,多一个更强大开源全链路遥测数据采集工具,是一种新的体验和选择,学习撑握Alloy后也是增加自身技术广度的一种最佳体现。

参考文档:

Grafana Alloy | Grafana Alloy documentation

https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.105.0/pkg/ottl/contexts/ottlmetric/README.md

prometheus | Grafana Alloy documentation

相关文章:

遥测数据采集工具Grafana Alloy

介绍 Alloy是Grafana产品公司旗下的一款新主推遥测数据采集工具&#xff0c;Grafana Alloy也是一个开源OpenTelemetry收集器&#xff0c;具有内置 Prometheus管道并支持指标、日志、跟踪和配置文件。Alloy支持为OTEL、Prometheus、Pyroscope、Loki等服务提供许多指标、日志、跟…...

线性数据结构

数组 数组&#xff08;Array&#xff09; 是一种很常见的数据结构。它由相同类型的元素&#xff08;element&#xff09;组成&#xff0c;并且是使用一块连续的内存来存储。 我们直接可以利用元素的索引&#xff08;index&#xff09;可以计算出该元素对应的存储地址。 数组…...

【ArcGIS微课1000例】0127:计算城市之间的距离

本文讲述,在ArcGIS中,计算城市(以地级城市为例)之间的距离,效果如下图所示: 一、数据准备 加载配套实验数据包中的地级市和行政区划矢量数据(订阅专栏后,从私信查收数据),如下图所示: 二、计算距离 1. 计算邻近表 ArcGIS提供了计算点和另外点之间距离的工具:分析…...

【算法】二分

1. 找到有序区间中 x 最左边的数字的位置 static int getL(int a[], int l, int r, int x) {while (l < r) {int mid l r >> 1;if (x < a[mid]) {r mid;} else {l mid 1;}}if (a[l] ! x) return -1;return l;} 2. 找到有序区间中 x 最右边的数字的位置 stati…...

ARM CCA机密计算安全模型之简介

安全之安全(security)博客目录导读 目录 1、引言 2、问题陈述 3、CCA 安全保证 3.1 对领域所有者的安全保证 3.2 对host环境的安全保证 Arm 机密计算架构&#xff08;CCA&#xff09;安全模型&#xff08;SM&#xff09;定义了 CCA 隔离架构的安全要求和基本安全属性。这…...

蓝桥杯-洛谷刷题-day3(C++)

目录 1.忽略回车的字符串输入 i.getline() ii.逐个字符的识别再输入 2.获取绝对值abs() 3.做题时的误区 4.多个变量的某一个到达判断条件 i.max() 5.[NOIP2016 提高组] 玩具谜题 i.代码 6.逻辑上的圆圈 i.有限个数n的数组 7.数组的定义 i.动态数组 1.忽略回车的字符串输…...

K8S资源限制之ResourceQuota

ResourceQuota介绍 在K8S中&#xff0c;大部分资源都可以指定到一个名称空间下&#xff0c;因此可以对一个名称空间的计算资源&#xff0c;存储资源&#xff0c;资源数量等维度做资源限制。 如限制pod数量、svc数量&#xff0c;控制器数量&#xff0c;限制PVC请求的存储量 注…...

释放高级功能:Nexusflows Athene-V2-Agent在工具使用和代理用例方面超越 GPT-4o

在不断发展的人工智能领域&#xff0c;Nexusflows 推出了 Athene-V2-Agent 作为其模型系列的强大补充。这种专门的代理模型设计用于在功能调用和代理应用中发挥出色作用&#xff0c;突破了人工智能所能达到的极限。 竞争优势 Athene-V2-Agent 不仅仅是另一种人工智能模型&…...

MongoDB索引操作和执行计划Explain()详解

一、索引操作 说明&#xff0c;下面的内容举例时&#xff0c;以"dailyTrip"collection为例。 字段内容如下&#xff1a; {"_id" : ObjectId("63ec5a971ddbe429cbeeffe3"), // object id"car_type" : "Gett", // string&…...

H3C NX30Pro刷机教程-2024-11-16

H3C NX30Pro刷机教程-2024-11-16 ref: http://www.ttcoder.cn/index.php/2024/11/03/h3c-nx30pro亲测无需分区备份 路由器-新机初始化设置路由器登录密码telnet进入路由器后台 刷机上传uboot到路由器后台在Windows环境下解压后的软件包中打开 tftpd64.exe在NX30Pro环境下通过以…...

无插件H5播放器EasyPlayer.js网页web无插件播放器vue和react详细介绍

EasyPlayer.js H5播放器&#xff0c;是一款能够同时支持HTTP、HTTP-FLV、HLS&#xff08;m3u8&#xff09;、WS、WEBRTC、FMP4视频直播与视频点播等多种协议&#xff0c;支持H.264、H.265、AAC、G711A、Mp3等多种音视频编码格式&#xff0c;支持MSE、WASM、WebCodec等多种解码方…...

HarmonyOS ArkUI(基于ArkTS) 开发布局 (中)

HarmonyOS ArkUI(基于ArkTS) 开发布局 &#xff08;上&#xff09; 四 层叠布局 (Stack) 层叠布局&#xff08;StackLayout&#xff09;用于在屏幕上预留一块区域来显示组件中的元素&#xff0c;提供元素可以重叠的布局。层叠布局通过Stack容器组件实现位置的固定定位与层叠&…...

org.springframework.context.support.ApplicationListenerDetector 详细介绍

一&#xff0c;功能介绍 early post-processor for detecting inner beans as ApplicationListeners 早期的PostProcessor用来检测并处理内部&#xff08;inner&#xff09;bean作为 ApplicationListeners BeanPostProcessor that detects beans which implement the Applica…...

MSTP实验

单点故障---冗余---环路---STP----RSTP-----MSTP MSTP 产生的背景 因为RSTP在局域网内所有VLAN 共享一棵生成树&#xff0c;如果链路被堵塞&#xff0c;将无法承载任何流量&#xff0c;所以为了实现流量负载均衡&#xff0c;MSTP诞生了。 生成树不是基于VLAN运行的&#xff…...

Linux---shell脚本

文章目录 目录 文章目录 前言 一.Shell脚本定义 shell脚本书写规范 shell脚本执行方式 二.Shell变量 变量定义 定义规范 定义方式 变量的运算 数值运算 数值比较 未完待续...... 前言 希望通过本文的学习&#xff0c;你能够掌握Shell脚本的基本知识和实用技巧&#xff0c…...

Android12的ANR解析

0. 参考&#xff1a; ANR分析 深入理解 Android ANR 触发原理以及信息收集过程 1.ANR的触发分类: ANR分为4类&#xff1a; InputDispatchTimeout&#xff1a;输入事件分发超时5s,包括按键和触摸事件。BroadcastTimeout&#xff1a;比如前台广播在10s内未执行完成&#xff0…...

初学人工智不理解的名词3

TTS领域的名词 from gpt-4o 在 TTS&#xff08;文本到语音合成&#xff09; 领域&#xff0c;以下是 CFM、One-Step 蒸馏 和 ReFlow 的含义和作用的详细解释&#xff1a; 1. CFM&#xff08;Consistent Flow Matching&#xff09; Consistent Flow Matching&#xff08;一致流…...

ADS项目笔记 1. 低噪声放大器LNA天线一体化设计

在传统射频结构的设计中&#xff0c;天线模块和有源电路部分相互分离&#xff0c;两者之间通过 50 Ω 传输线级联&#xff0c;这种设计需要在有源电路和天线之间建立无源网络&#xff0c;包括天线模块的输入匹配网络以及有源电路的匹配网络。这些无源网络不仅增加了系统的插入损…...

J.U.C - 深入解读阻塞队列实现原理源码

文章目录 Pre生产者-消费者模式阻塞队列 vs 普通队列JUC提供的7种适合与不同应用场景的阻塞队列插入操作&#xff1a;添加元素到队列中移除操作&#xff1a;从队列中移除元素。 ArrayBlockingQueue源码解析类结构指定初始容量及公平/非公平策略的构造函数根据已有集合初始化队列…...

【大语言模型学习】LORA微调方法

LORA: Low-Rank Adaptation of Large Language Models 摘要 LoRA (Low-Rank Adaptation) 提出了一种高效的语言模型适应方法,针对预训练模型的适配问题: 目标:减少下游任务所需的可训练参数,降低硬件要求。方法:冻结预训练模型权重,注入低秩分解矩阵,从而在不影响推理…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...