基于开源Drasi 实时监控和自动响应系统
Drasi 是微软使用MIT协议开源的一个项目,已经提交到CNCF孵化,github:https://github.com/drasi-project/drasi-platform/ ,他提供了一个集成解决方案,可以用于监控变化并自动做出适当的响应,解决扩展事件驱动系统所面临的挑战。它提供了一个统一的框架,降低了复杂性并能确保及时响应,使开发人员无需手动构建源(Source):这些源可监控各种数据点,包括应用程序日志、数据库变化和系统指标。
Drasi 是一种全面的解决方案,提供内置功能来跟踪特定事件的系统日志和更改源、评估它们的相关性并自动启动适当的反应。 Drasi 包含以下三个核心的基本组件:
- 源(Source):这些源可监控各种数据点,包括应用程序日志、数据库变化和系统指标。源可以实时跟踪变化,捕获数据而无需将其复制到中央存储库或数据湖。
- 连续查询(Continuous Query):Drasi 不依赖传统的时间点查询,而是使用连续查询,在数据到达时对其进行评估。这些查询是使用 Cypher 查询语言编写的,整合了多个源的信息,无需人工干预即可不断地更新结果。
- 响应(Reaction):当变化符合连续查询中定义的标准时,Drasi 会自动触发响应,包括发送警报、更新系统或根据特定业务需求启动补救措施等任务。

Cypher 支持
连续查询是使用Cypher 查询语言的子集编写的。如果您是 Cypher 新手,Cypher 查询语言的原始创建者 Neo4J 有很多资源可以帮助您理解、学习和尝试 Cypher,包括:
它是一种被严重低估的查询语言,虽然大多数查询也可以转换为关系 SQL,使用 WITH 子句的 Cypher 线性构造更容易推理。
Cypher 的关键之一(至少在图形数据库的上下文中)是它有一种很好的方法将“JOIN”操作表示为图形遍历。
MATCH (p:Person)-[r]-(c:Company) RETURN p.Name, c.Name
其中 `r` 可以表示两个集合 `Person` 和 `Company` 之间的任何关系(又称为 `JOIN`),例如 `WORKS_AT`、`EMPLOYED_BY`、`CONTRACTOR_FOR` 等。
Drasi 不仅仅是在数据上运行图形查询,它还使用 Cypher 查询语言作为一种方便的方式来表达您想要观察的数据变化。
Dapr 支持
Drasi 的基础架构是Dapr 支撑的,在以下方面支持:
(1) 事件源与 Dapr 的集成
Drasi 支持多种数据源(如日志、数据库更新、Azure Event Grid 等)。而 Dapr 的 发布/订阅(Pub/Sub) 功能可用于在不同服务间传递事件消息。例如,Dapr 的 Pub/Sub 组件(如 Redis、Azure Service Bus)可作为 Drasi 的事件源之一,帮助 Drasi 捕获跨系统的实时事件流。
(2)响应动作触发 Dapr 服务
Drasi 的响应(Reaction)机制可触发自定义操作,例如调用外部 API 或启动修复流程。在此场景下,Dapr 的 服务调用(Service Invocation) 功能可用于安全、可靠地调用其他微服务,或在 Kubernetes 环境中通过 Sidecar 代理完成跨服务通信56。
(3)状态管理与查询优化
Dapr 的 状态管理(State Management) 组件支持持久化存储(如 Redis、MySQL),可能被 Drasi 用于缓存连续查询的中间结果或历史数据,从而提升查询效率56。
(4) 技术生态的互补性
Dapr 的跨语言支持:Dapr 提供多语言 SDK(如 .NET、Java、Go),而 Drasi 的查询语言 CQL 基于图数据库语法。两者结合时,Dapr 可帮助 Drasi 兼容更多异构系统,扩展其应用场景58。
Kubernetes 部署:Dapr 在 Kubernetes 中通过 Sidecar 注入运行,Drasi 同样支持云原生部署。两者可通过 Kubernetes 的注解(Annotations)协同配置,例如通过 Dapr 的服务发现机制优化 Drasi 的事件路由
参考文章:
使用 Drasi 检测数据变化并做出智能反应:https://opensource.microsoft.com/blog/2024/10/22/detect-and-react-intelligently-to-changes-in-data-with-drasi/
基于开源Drasi 实时监控和自动响应系统的更多相关文章
- 项目-基于视频压缩的实时监控系统--tiny6410
项目-基于视频压缩的实时监控系统--tiny6410 @国嵌linux学习笔记. 1. 构造服务端结构体 server struct server { int epfd; //保存epoll指针 st ...
- 基于开源软件构建高性能集群NAS系统,包括负载均衡(刘爱贵)
大数据时代的到来已经不可阻挡,面对数据的爆炸式增长,尤其是半结构化数据和非结构化数据,NoSQL存储系统和分布式文件系统成为了技术浪潮,得到了长足的发展.非结构化数据目前呈现更加快速的增长趋势,IDC ...
- 基于开源软件在Azure平台建立大规模系统的最佳实践
作者 王枫 发布于2014年5月28日 前言 Microsoft Azure 是微软公有云的唯一解决方案.借助这一平台,用户可以以多种方式部署和发布自己的应用. 这是一个开放的平台,除了对于Windo ...
- 搭建属于你的家庭网络实时监控–HTML5在嵌入式系统中的应用·高级篇
*本文已刊登在<无线电>2014年第6期 <搭建属于你的在线实时採集系统>中已经对HTML5平台有了初步的认识,并基于此向大家展示了怎样将採集到的数据上传至网络.实现实时观測. ...
- 基于视频压缩的实时监控系统-sprint1基于epoll架构的采集端程序设计
part1:产品功能 part2:epoll机制 select与epoll区别 1.select与epoll没有太大的区别.除了select有文件描述符限制(1024个),select每次调用都需 ...
- \阶段4-独挡一面\项目-基于视频压缩的实时监控系统\Sprint2-采集端图像采集子系统设计
1.在编写程序前有一个流程,思维导图: 初始化:包括初始化摄像头:注册事件到epoll 然后是开始启动采集:一旦开始采集我们的摄像头就会有数据了,它会触发事件处理函数:我们在这里的处理是保存这个图像: ...
- 阶段4-独挡一面\项目-基于视频压缩的实时监控系统\Sprint1-基于Epoll架构的采集端程序框架设计\第2课-基于Epoll的采集端程序框架设计
回顾之前的整个程序架构 把epoll机制应用到这个架构上去 下面主要去分析我们的系统中有没有需要等待的事件,先看看采集子系统 在采集子系统当中,摄像头有数据,摄像头采集到图像数据可以作为一个等待事件. ...
- 基于视频压缩的实时监控系统-sprint3采集端传输子系统设计
由于jpg本来就是编码压缩后的格式,所有无需重复编码 传输子系统步骤:(1)初始化:a.socket(初始化tcp连接):b.将事件添加到epoll中 (2)事件处理:接收到网络包.发送完网络包 st ...
- 基于视频压缩的实时监控系统-sprint2采集端图像采集子系统设计
(1).初始化:a.初始化摄像头:b.注册事件到epoll (2).开始采集--->触发事件处理系统 (3).保存图像(方便测试) a.初始化摄像头 //初始化摄像头 1.获取驱动信息 2.设置 ...
- 大众点评cat实时监控简介及部署
简介 背景 CAT(Central Application Tracking)是由吴其敏(前大众点评首席架构师,现携程架构负责人)主导设计基于Java开发打造的实时应用监控平台,为大众点评网提供了全面 ...
随机推荐
- 深入解析 WezTerm 的自定义功能:键绑定和鼠标绑定
WezTerm 是一个高性能的跨平台终端模拟器,它提供了广泛的自定义选项,包括键绑定和鼠标绑定,使得用户可以根据自己的需求优化操作界面.本文将详细介绍几个关键的自定义功能,解释它们的用途,并展示如何配 ...
- 关于ClassLoader中getResource与getResourceAsStream的疑问
背景: 某日临近下班,一个同事欲任何类中获取项目绝对路径,不通过Request方式获取,可是始终获取不到预想的路径.于是晚上回家google了一下,误以为是System.getProperty(&qu ...
- 开源 - Ideal库 - Excel帮助类,设计思路(一)
今天开始和大家分享关于Excel最长常用操作封装. 01.起因 市面上有很多Excel操作库,这些库设计之初的目标是提供对Excel的各种操作功能,包括数据.样式.公式.图表等等.而对于我们平时开发来 ...
- Lombok 代码优化器
Lombok是一种Java实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO).它通过注释实现这一目的 使用安装Lombok pom文件导入lombok Mav ...
- Fiddler抓包iOS手机配置全流程
前情 平时做移动移动端开必的时候经常需要抓包手机,用于接口请求跟踪,但iOS的抓包经常性的配不成功,经过踩过不少坑后终于知道了整个配置流程,此文记录Fiddler抓包iOS手机的配置流程. Step ...
- 前端每日一知之你需要知道的JSON.stringify
脑图在线链接 本文内容依据[web开发]公众号精彩文章总结而来
- Flutter查漏补缺2
Flutter的理念架构 Flutter架构分为三层 参考官方文档 Framework层(dart) flutter engine层(C/C++) embeder层(platform-specific ...
- 中电金信:从“互联网+”到“人工智能+”,TA也藏不住了!
两会期间,人工智能频上头条 其中"人工智能+"首次进入2024政府工作报告 为人工智能产业的发展注入一剂强心针 从"互联网+"到"人工智能+& ...
- Qt音视频开发08-ffmpeg内核优化(极速打开/超时回调/实时响应)
一.前言 最初编写这套视频解析组件的时候,面对的场景是视频监控行业,对应设备都是网络监控摄像机,传过来的都是rtsp这种视频流,做过这一块的人都知道,打开某个视频流默认耗时比较大,基本上在2s左右,那 ...
- PostgreSQL 数据库的启动与停止管理
title: PostgreSQL 数据库的启动与停止管理 date: 2024/12/28 updated: 2024/12/28 author: cmdragon excerpt: 作为一个强大的 ...