首页 文章 精选 留言 我的

精选列表

搜索[快直播],共10000篇文章
优秀的个人博客,低调大师

# Apache Spark系列技术直播# 第八讲 【 微软Azure平台利用Intel Analytics Zoo构建AI客服支持实践 】

主讲人:黄凯——Intel大数据技术团队软件工程师。卫雨青——Microsoft C+AI 团队软件工程师。 简介:Analytics Zoo (https://github.com/intel-analytics/analytics-zoo) 是Intel基于Apache Spark以及BigDL的开源分布式深度学习框架,它为Spark提供了深入学习功能的原生支持,并且具有高效的水平扩展能力。Analytics Zoo能让用户将已有的大数据集群作为数据存储、处理和挖掘、特征工程、深度学习工作负载流水线的统一数据分析平台。微软Azure的智能客服平台,是一个基于和客户在线的文字对话,搜索预先训练计算的模型、索引,并计算权重,实时解决和反馈客户技术问题的智能交互式问答系统,它极大地减少了客户主动寻求转人工帮助机会。在文本分类和问答排序

优秀的个人博客,低调大师

36.FFmpeg+OpenCV直播推流(搭建crtmpserver服务器并使用ffmepg,vlc测试推流播放)

开发环境 Ubuntu 16 64位+Windows10 开发过程 1.登录Ubuntu切换到root用户(减少权限问题),执行以下命令 apt update 它的作用是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。它只是更新了apt的资源列表,没有真正的对系统执行更新。如果需要,要使用apt-get upgrade来更新 2.源更新之后,开始下载crtmpserver wget https://codeload.github.com/j0sh/crtmpserver/zip/centosinit 下载完成后,在目录下可以看到如下 root@ubuntu:~# ls centosinit 3.我们需要openssh网络协议的支持,执行以下命令下载libssl-dev apt install libssl-dev libssl-dev是OpenSSL通用库。SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。4.然后我们需要解压crtspserver,解压需要使用unzip,如果没有安装,就先安装 apt install unzip unzip crtmpserver 5.解压成功之后进入crtmpserver的以下目录中 root@ubuntu:~/crtmpserver-centosinit/builders/cmake# ls androidapplestreaming CMakeFiles common lua run toolchain-sourcery_g++_lite.cmake vmtests applications cmake_find_modules crtmpserver Makefile tests trafficdissector cleanup.sh cmake_install.cmake debianpackage.patch package.sh thelib vg.sh CMakeCache.txt CMakeLists.txt ltib precompiled.gch tinyxml vm 执行命令 cmake . 命令执行成功的前提是g++已经被安装,如果没有,则会提示错误,通过以下命令安装 apt install g++ 6.cmake .命令执行完之后,在同样的目录下执行make命令 make make的执行基于CMakeLists文件的存在,所以,这也是需要在这个目录下执行的原因7.make编译完成之后,我们就可以开启crtmpserver服务器了,执行下边的命令 ./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua 执行后可以看到服务器已经开启的画面此时服务器已经进入了接收推流的状态8.接下来,我们使用ffmpeg命令行推流试试 ffmpeg -i path(视频文件地址) -f flv rtmp://192.168.1.1:1932/live/test -i 指定视频路径-f 执行格式,推流使用flv,及时你的是mp4,你也不能使用-f mp4192.168.1.1是你Ubuntu的ip地址,1932是crtmpserver的端口号,可以从上边的图上看到 执行后,我们打开vlc播放器将这个地址输入到这里,点击媒体->打开网络串流输入这个地址,可以看到视频正常播放了9.可能存在的几个问题 a.视频非常模糊 因为ffmepg对视频编码进行了处理,我们将推流的命令改为 ffmpeg -i 文件 -f flv -c copy rtmp:..... 可以看到清晰了很多,这是因为做了直接copy处理 b.你的视频地址输入vlc中,没有播放 如果此时服务器正常,推流也正常的情况下,这种情况,可能是推流已经结束了,所以要看到视频需要保证你接收推流的时间一定要在推流没有结束之前进行,也就是看你手速了,短视频很快就推完了

优秀的个人博客,低调大师

腾讯云国际站(云老大):快用这三招“降噪大法”,让检索、阈值和通知都变聪明点!

# 腾讯云日志服务告警优化指南 运维群里凌晨三点弹出的告警,点开一看又是那条雷打不动的“错误日志”,值班同事扫一眼就划走——这种场景在接入腾讯云日志服务后并不少见。**腾讯云日志服务告警误报优化**之所以成为运维团队绕不开的议题,不是因为功能缺失,而是默认配置与真实业务之间天然存在落差。当告警从“信号的传递者”退化成“狼来了的广播员”,问题往往不在云服务本身,而在检索语句、阈值和通知策略没有被调校到合适的粒度。 本文由 云国际站代理商『云老大 飞弟:@yunlaoda360 / YunLaoDa-服务器服务商•撰写』如需转载请注明! ![](https://developer.qcloudimg.com/http-save/yehe-12607574/9b5d7e64eb2b96a89a06a5e779cf1ee7.png) ## 为什么腾讯云日志服务告警会频繁误报? 日志告警的本质是在海量非结构化文本中执行模式匹配,只要匹配条件与业务语义存在偏离,误报就会系统性地出现。腾讯云日志服务提供了一套灵活的检索和分析语法,但灵活本身也意味着容易写出“范围过大”的查询语句。再加上阈值策略通常以全局固定值的形式下发,没有跟随业务流量做周期性调整,于是高峰期正常的流量抖动被误判为异常、低谷期真正的故障却因为阈值门槛过高而漏过。外部看来这是“误报频繁”,但拆开看,是检索语句、阈值模型、通知节奏这三件事没有对齐。 ### 检索语句为什么是误报的首要源头? 日志检索语句的精度直接决定告警是抓到了“问题”还是抓到了“噪音”。运维实践中一个常见误区是过度依赖模糊匹配,比如用 `error*` 或 `*exception*` 去扫全量日志,这会把框架自带的 debug 信息、定时任务的状态记录、甚至健康检查探针的正常输出一并命中。腾讯云日志服务的官方检索语法支持 `AND`、`NOT`、`regex` 等操作符,就是要用“白名单+黑名单”的思路去收缩匹配范围。实操上看,不主动做排除逻辑的告警规则,上线两周内几乎都会被打上“太吵”的标签。很多团队还要面对另一个隐蔽问题——日志级别混淆,把业务自身流程中正常的 `WARN` 日志也纳入告警条件,比如重试机制里的等待提示、缓存预热时的瞬态提醒,这类日志按规范应当被归入可观测性数据而非告警源。 ![](https://developer.qcloudimg.com/http-save/yehe-12607574/df09c466a74479a3ece348d945f096d4.png) ### 为什么默认阈值无法适应业务波动? 腾讯云日志服务在创建告警策略时会给出通用阈值建议,例如 QPS 告警默认值 100、错误码告警默认值 10。这些数字完全没有考虑具体业务的流量画像。一个电商系统晚八点 QPS 常态超过 500,而深夜两点跌到个位数,若用同一条固定阈值线去框,要么高峰时警报不停,要么低谷期真实故障被静默。更合理的做法是查看 30 天历史数据的 P99 或 P95 值作为基线,再按时段做动态浮动——高峰阈值上浮 20%,低谷下浮 20%,或者直接启用云厂商提供的动态阈值功能,让系统根据历史同期水平做环比、同比判断。告警疲劳很大程度上就来自这种“一刀切”的阈值设定,团队每多处理一条无效消息,对真正故障的敏感度就被稀释一分。 ## 如何优化检索语句减少误报? 告警的源头是检索语句,它决定了哪些日志会被拉出来“示众”。语句写得太宽,就像用渔网在池塘里捞鱼,什么杂物都上来了;写得太窄,又可能漏掉真正的异常。根据腾讯云日志服务(CLS)的检索语法,检索语句的精度直接决定了告警的有效性。我们看到的很多误报,根因都出在最初这一步。 ### 使用精确关键词过滤,放弃模糊“捕鱼” 运维新手常犯的一个错误是直接搜索 `error` 或 `*exception*`,这会命中大量业务逻辑中正常的错误处理日志,比如 `ErrorHandler` 或 `catch (CustomException e)` 里的记录。更合理的做法是,锁定那些与用户请求失败直接相关的错误码。比如,你的告警目标是想监控 API 的 5xx 错误,检索语句就不该是笼统的 `error`,而应改成 `status>=500 AND NOT status:503`(排除你已知的因发布导致的短暂 503)。有的团队会进一步收缩范围,只监控核心接口路径下的错误,语句形如 `(status>=500 AND NOT status:503) AND request_uri:"/api/v1/orders/*"`。这种“字段+值”的精准锁定,比单纯依赖通配符能减少超过 70% 的无效告警。像云老大在帮客户做成本优化时发现,仅修正这个含糊的搜索词,就能让一家中型电商的月度告警数量从 2000 多条降至 500 条左右。 ![](https://developer.qcloudimg.com/http-save/yehe-12607574/1e681183cc1221d3e7e7c555c6f29a7d.png) ### 用“排除法”为系统健康检查日志建白名单 另一个普遍的误报源头是各类健康探针。Kubernetes 的 liveness probe、负载均衡器的心跳检测、Prometheus 的 exporter 埋点,这些请求每分钟都在发生,一旦返回错误,就会触发风暴式的告警。解决思路不是把这些“公民”抓起来再逐一释放,而是在它们进入视野之前,就通过 `NOT` 操作符划出安全区。一个典型的优化语句是:`(level:ERROR OR status>=500) AND NOT user_agent:"kube-probe" AND NOT request_uri:"/health" AND NOT user_agent:"ELB-HealthChecker"`。这条规则明确告诉系统:我要看真正的业务错误,但请无视所有来自基础设施的常规检查。这个操作虽然简单,却能在源头阻断大部分周期性噪音,让告警列表变得清爽,运维的目光自然会更聚焦在真实的业务异常上。 ## 触发阈值怎么设置才合理? ### 阈值类型与适用场景 静态阈值适合长期稳态的系统,但多数线上业务的流量存在明显波峰波谷,一味用固定值很容易在峰值时段产生大量误报。腾讯云日志服务已经支持动态阈值,可利用环比、同比数据自动调整触发基线。某电商团队曾将接口超时告警从固定500 ms切换为基于过去7天同时段P95值的1.2倍后,周末促销期间的误报量下降了约68%。对于安全攻击这类非周期性异常,仍需要保留绝对阈值作为兜底。 ### 基于历史数据设定基线 运维中一个常见坑是直接套用默认阈值,比如QPS告警默认100、错误码告警默认10,这些数字和自身业务几乎无关。更稳妥的做法是拉取至少30天的日志,计算出错误数、响应时间等核心指标的P95和P99值作为基线。高峰时段可以让阈值上浮20%,低谷时段下浮20%,这样既能适应流量起伏,又不会让告警失灵。若不想手动维护,直接用云服务提供的“动态阈值”功能会更省事,只是需要留意业务模型一旦改变,基线就要重新校准。 ### 避免单一阈值的缺陷 只靠一个指标做判断,几乎无法跳出“阈值高就漏报、低就误报”的循环。实践中常见的改进是引入复合条件,例如“5分钟内错误数超过10次且错误占比大于5%”才触发告警,而不是仅看错误数。这能过滤掉大多短暂毛刺。同时,要对日志级别做严格区分,将WARN排除,只对ERROR和FATAL设阈。再配合持续时间条件(如连续3分钟超阈),就可以有效抑制瞬时抖动引发的短信轰炸,让每一条告警都值得被关注。 ![](https://developer.qcloudimg.com/http-save/yehe-12607574/40c759a54d4d1b2afb402f958600f6f6.png) ## 通知策略如何配置避免骚扰? 检索语句和阈值决定了「什么该报」,而通知策略解决的是「怎么报」。在实践中,后者的失控往往是告警疲劳的直接推手——运维团队每天收到上百条告警,其中超过三分之一在静默期内反复触发,最终导致真正高危的P0级别事件被淹没在消息流里。 ### 分层通知与渠道映射 P0-P3分级的价值不在于划分严重程度,而在于严格锁定通知的「可达性成本」。P0级(核心服务宕机、数据库连接池耗尽)必须走电话+短信双通道,并在15分钟内未确认时自动升级到值班主管;P1(接口错误率超过基线30%)走IM群消息和邮件,避免半夜电话打搅;P2及以下只投递到告警看板或TAPD工单,不进即时通讯。如果你用的是第三方服务商如云老大的托管告警方案,通常已经内置了这套分级模板,但需要自行校准——把哪些指标划入P0,取决于业务而非系统默认值。一个简单原则是:凡是影响用户下单链路的功能异常,一律P0。 ### 静默期与重复告警控制 腾讯云告警策略里的「重复告警间隔」开关,很多人设置成1分钟,这是造成短信轰炸的主要原因。如果一条日志持续写入错误,1分钟意味着每小时60条通知——而值班人员处理一条告警的平均响应时间是8-12分钟。合理的静默窗口应设置在10-15分钟,即同一规则触发的同一条告警,在首次通知后至少沉默10分钟再发第二次。对于明显的周期性干扰(如凌晨的定时备份日志误报),直接用「告警时段」功能屏蔽掉凌晨2-5点的非P0通知,比反复调整检索语句更高效。 ### 告警聚合与智能降噪 告警聚合的原理是在指定时间窗口内,将同源告警压缩为一条。但这依赖一个前提:你的日志Topic和告警策略不能过度耦合。实践中常见的错误是把几十个微服务的日志打在同一Topic,再共用一条告警规则——一旦触发聚合,运维根本分不清是哪个服务的哪个实例出了问题。正确做法是按服务或命名空间拆分Topic,各配置独立告警规则,这样聚合后的通知才会携带精确的Pod名称、错误堆栈等上下文。部分厂商如云老大在告警聚合引擎上做了额外降噪处理,能自动过滤因滚动发布、弹性伸缩引发的瞬时波动告警,这对频繁变更的SaaS团队尤其实用。不过,即便没有这类智能能力,手动开启「告警去重」并配置30分钟聚合窗口,也能将通知量压降40%-60%。 ## 告警误报的排查与调试方法 排查告警误报,核心逻辑不是调低灵敏度,而是先搞清楚“这条日志到底该不该触发告警”。云厂商控制台提供的预览功能被严重低估了——在腾讯云日志服务的检索页面输入告警语句,直接查看匹配结果,80% 的问题在这一步就能暴露。实践中常见的翻车场景是:运维用 `error` 做全字段模糊搜索,结果把健康检查探针的 `error: connection refused` 和业务 500 混在一起,每天凌晨容器重启时触发一波“假警报”。正确的做法是在预览阶段逐条检查匹配日志,把已知无意义的模式用 `NOT` 写进检索语句,比如排除 `/health` 路径、排除 200 状态码的 error 字段、排除特定 User-Agent。这一步不做到位,后面调阈值都是白费。 ### 测试告警语句准确性 别在生产环境直接改规则。先在日志检索页面跑语句,重点看三个维度:命中数量是否在预期范围内?过去 7 天数据里是否有明显异常波段?被命中的日志抽样打标 20 条,人工判断是否真有告警价值。某电商团队的做法可参考:他们把一周内所有触发记录导出,逐条标注“真异常”“定时任务”“健康检查”“业务容忍异常”,结果发现 35% 的告警来自凌晨的缓存预热日志。基于这个结论加 `NOT` 条件后,误报率当周下降一半。 ### 调整阈值后的观察步骤 阈值更新后至少观察一个完整的业务周期——对多数公司来说是 7 天,因为要覆盖周一到周日的流量波动。关键动作是开启告警策略的“静默期”设置,比如 30 分钟内重复触发不重复通知,这能让你在观察期不被短信刷屏,同时又不丢失告警记录。腾讯云控制台支持设置“重复告警间隔”,建议初始设为 15-30 分钟。观察期结束后拉出告警历史,计算误报率(误报数/总告警数),低于 20% 才算合格基线。 ### 日志采样验证流程 仅用最近 24 小时的日志样本设阈值,等于蒙眼定规则。合理做法是抽取过去 30 天数据,按小时粒度计算 P95 和 P99 值作为基线,高峰时段(如 10:00-12:00、14:00-17:00)和低谷时段(如 02:00-06:00)分开建模。如果现有的云服务不支持分时段动态阈值,手动方案是建两条告警规则:高峰规则用 P95 上浮 20% 做触发点,低谷规则用 P99 下浮 20%。验证时把这两条规则应用到上周数据做回溯测试,看匹配结果是否与实际故障记录吻合——这一手在迁移到新告警体系时尤其关键。 ## 完整优化案例与最佳实践 告警优化的难点从来不在技术操作,而在于理解“什么值得告警”这件事本身。一家电商公司的运维团队做过统计:他们接入腾讯云日志服务的前三个月,日均告警238条,其中被标记为“需要处理”的仅11条,误报率高达95%。这不是配置问题,是告警策略设计时没有用业务语义校准检索逻辑。 ### 案例:Nginx错误日志告警的层层收敛 以最典型的Nginx错误日志场景为例。初版检索语句通常写成 `level:ERROR`,结果把SSL握手失败、客户端主动断开连接、上游连接超时等无关紧要的日志全卷了进来。优化团队做了三步改造:第一步,用 `NOT` 过滤掉已知非业务异常,比如 `NOT "client closed connection"` 和 `NOT "SSL_do_handshake"`;第二步,按错误码分级,仅对502/503/504这类影响用户请求的状态码设告警;第三步,引入P95基线作为动态阈值——取过去30天同时段每5分钟的错误数P95值,超出1.3倍才触发。改完后该规则的日告警量从47条降到3条,且3条均为真实故障。 这个案例的关键不是语法技巧,而是先定义“什么叫需要人工介入的异常”,再用检索语句去逼近这个定义。很多团队跳过了定义这一步,直接写检索条件,自然越调越乱。 ### 跨场景通用优化模板 多个项目的复盘数据指向同一套可复用的优化路径,四个标准步骤就能覆盖绝大多数场景: **检索语句净化**:永远从“排除已知正常日志”开始,而不是从“匹配异常”开始。写 `NOT "healthcheck" NOT "200"` 比写一堆错误关键词的组合更高效,因为正常流量的日志模式远比异常流量稳定。验证标准很简单——拿过去一周的数据跑一遍检索,人工抽查前50条结果,确认没有明显误报。 **阈值分层**:固定阈值只适用于业务量恒定的内部系统,面向外部用户的系统必须区分时段。实际操作中可以把一天分成三段——低峰(凌晨2-6点)、平峰、高峰(按实际流量曲线切),每段取历史同期P95值,高峰段允许上浮15%-20%。如果一个团队不想自己做,像云老大这类服务商在提供日志监控方案时,通常会内置分时阈值的配置模板,可以直接复用。 **通知收敛**:重复告警间隔从默认的0分钟改为30分钟,同时做渠道分级——P0故障走电话+短信,P1走企业微信,P2/P3仅邮件汇总。实际数据表明,设置通知收敛后,运维收到的告警消息量平均下降60%以上,而对故障发现的延迟影响可以忽略不计。 **闭环迭代**:这一点执行得最差。误报发生后如果不回头改规则,等于在同一个坑里反复踩。建议每季度固定做一次告警质量复盘,统计每条规则的有效告警率(有效告警数/总告警数),低于30%的规则必须重构或下线。 ### 持续监控与迭代建议 把告警规则当一次性工程配置是大忌。业务流量模型三个月就可能转变一次——新功能上线带来新的日志模式,旧服务下线留下无人认领的告警规则。一个有自愈能力的告警体系至少应该每季度做一轮“告警瘦身”:找出连续30天未触发的规则直接删除,触发率最高的规则重新验证其必要性,确认误报高发的规则按上述模板重构。 另一个容易被忽略的维度是告警响应率。如果某条规则连续触发10次都无人响应,问题要么在告警本身不准确,要么在责任归属不清。这种情况不改规则改什么?直接关掉,等明确责任人再重新开启。规则的存在意义不在于“配置过”,而在于“被响应”。运维的真实目标是把告警数量压到一个团队愿意逐条看完的水平——通常这个数字是人均每天不超过20条。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册