CN116049300A - 可视化图表展示方法、***及电子设备 - Google Patents
可视化图表展示方法、***及电子设备 Download PDFInfo
- Publication number
- CN116049300A CN116049300A CN202310111606.1A CN202310111606A CN116049300A CN 116049300 A CN116049300 A CN 116049300A CN 202310111606 A CN202310111606 A CN 202310111606A CN 116049300 A CN116049300 A CN 116049300A
- Authority
- CN
- China
- Prior art keywords
- grafana
- target
- server
- service
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种可视化图表展示方法、***及电子设备,应用于业务服务器;其预先配置有每个用户对不同Grafana对象的使用权限;响应于目标Grafana对象的查询请求,如果判断用户有权限,通过Nginx服务器向Grafana服务器获取对应的文件信息,以展示可视化图表。该方式在业务服务器中配置有用户对不同Grafana对象的使用权限,在判断用户具有目标Grafana对象的使用权限后,只需要从Grafana服务器获取相应的文件信息,即可展示对应的可视化图表,不需要用户自主开发图表,也不需要对Grafana服务器进行二次开发或对不同业务设置权限,从而降低了权限控制冗余复杂度,节省了人力资源和时间成本。
Description
技术领域
本发明涉及可视化技术领域,尤其是涉及一种可视化图表展示方法、***及电子设备。
背景技术
相关技术中,当需要进行数据可视化展示时,主要采用以下两种方式:一种方式是根据具体的需求进行完全自主的图表开发,由于同一个业务***可能不停存在有不同的可视化图表需要进行开发,而同一个数据来源、同一种类型的图表数据,又有可能需要在各个业务***中进行使用,需要重复开发,并且还需要根据各个业务***进行权限调整。另一种是使用已有的开源软件进行本地部署,Grafana的图表展示与管理较为依赖该软件的已有支持,可能需要在该开源软件上进行二次开发,或者根据使用场景重新分配设置权限或者数据,相关技术普遍存在权限控制冗余复杂,浪费大量的人力资源和时间成本的问题。
发明内容
本发明的目的在于提供一种可视化图表展示方法、***及电子设备,以降低权限控制冗余复杂度,节省人力资源和时间成本。
本发明提供的一种可视化图表展示方法,方法应用于业务服务器;业务服务器通过Nginx服务器与Grafana服务器通信连接;业务服务器中预先配置有每个用户对Grafana服务器中不同Grafana对象的使用权限;业务服务器中的查询字段与Grafana服务器中的查询变量相对应;方法包括:响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限;如果用户具有目标Grafana对象的使用权限,通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息;基于文件信息,展示目标Grafana对象对应的可视化图表。
本发明提供的一种可视化图表展示***,包括:业务服务器、Nginx服务器和Grafana服务器;业务服务器通过Nginx服务器与Grafana服务器通信连接;业务服务器中预先配置有每个用户对Grafana服务器中不同Grafana对象的使用权限;业务服务器中的查询字段与Grafana服务器中的查询变量相对应;业务服务器用于响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限;如果用户具有目标Grafana对象的使用权限,通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息;基于文件信息,展示目标Grafana对象对应的可视化图表。
本发明提供的一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述任一项的可视化图表展示方法。
本发明提供的一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述任一项的可视化图表展示方法。。
本发明提供的可视化图表展示方法、***及电子设备,可视化图表展示方法、***及电子设备,应用于业务服务器;业务服务器通过Nginx服务器与Grafana服务器通信连接;业务服务器中预先配置有每个用户对Grafana服务器中不同Grafana对象的使用权限;业务服务器中的查询字段与Grafana服务器中的查询变量相对应;方法包括:响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限;如果用户具有目标Grafana对象的使用权限,通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息;基于文件信息,展示目标Grafana对象对应的可视化图表。该方式在业务服务器中配置有用户对不同Grafana对象的使用权限,在判断用户具有目标Grafana对象的使用权限后,只需要从Grafana服务器获取相应的文件信息,即可展示对应的可视化图表,不需要用户自主开发图表,也不需要对Grafana服务器进行二次开发或对不同业务设置权限,从而降低了权限控制冗余复杂度,节省了人力资源和时间成本。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种可视化图表展示方法的流程图;
图2为本发明实施例提供的一种Grafana图表面板的Variable(变量)配置界面示意图;
图3为本发明实施例提供的一种图表面板下某个具体图表的关联sql执行语句的示意图;
图4为本发明实施例提供的一种配置页面的示意图;
图5为本发明实施例提供的一种可视化图表的示意图;
图6为本发明实施例提供的一种可视化图表展示的流程示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,随着互联网技术的蓬勃发展,海量的数据得以从各行各业进行收集。数据挖掘、数据收集、数据过滤到最后的数据聚合以及数据分析呈现,已经成为了整条产业链上密不可分的一部分。同样各式各样的可视化程序层出不穷,比如DataV、Davinci、Redash、DataWrapper、Metabase、Grafana等等。各个业务团队会根据自己的切身需求,选择不同的可视化工具进行使用或者二次开发。
Grafana支持丰富的数据源种类,如TiDB(一种开源数据库产品),Mysql(一种关系型数据库管理***),ES(ElasticSearch,一种数据库)等,多样展示组件类型,如表格、饼图、折线图等,操作配置灵活且易扩展,支持SQL(Structured Query Language,结构化查询语言)操作,同样也有成熟度较高的***配置以及较为活跃的社区,因此,经常成为一些部门或者团队的首选。
但是如何将Grafana与实际业务相结合,在尽量减少人力物力成本的前提下,又能达到基本让人满意的效果,这成为大家所较为关心的问题。在进行数据可视化展示的需求下,目前大体上存在两种解决方案:
方案一,根据具体的需求进行完全自主的图表开发。这一过程从无到有,涉及到软件设计的全流程,比如从需求分析开始、到交互设计、随后到前后端程序人员的开发、测试回归到上线。
然而,完全自主的图表开发,会造成大量的人力资源、时间成本的浪费。特别是在对整体UI(User Interface,用户界面)交互要求不高,主要目的在于展示数据的需求场景下。在实际开发场景中,同一个业务***可能不停存在有不同的可视化图表需要进行开发。而通常是同一个数据来源、同一种类型的图表数据,又有可能需要在各个业务***中进行使用。这样每一次开发流程,都需要在每个业务***中分配人力资源,造成大量的资源浪费。除去业务本身的开发,可能还需要根据各个业务***的实际权限管理,进行二次调整,同样会耗费较多时间。
方案二,使用已有的开源软件进行本地部署,以Grafana为例,其图表的展示与管理,较为依赖该软件的已有支持。可能需要在该开源软件上进行二次开发,或者根据使用场景重新分配设置权限或者数据,将相关图表页面链接分享给相关用户查询使用。Grafana提供了较为完善的权限***,有Viewer(阅读权限)、Editor(编辑权限)和Admin(管理员权限)的区分,也可以根据创建用户成员,分配相关Term(团队),再分配到相关Orgs(组织),通过分配不同的基础大盘来做权限区分。
然而,使用Grafana进行本地部署,较难处理的还是权限管理与分配,主要存在以下问题:
1、权限颗粒度较大,较难控制某些具体的数据权限,只能通过创建繁多的图表面板,逐一分配进行控制,管理难度较大,比如,正常对于一类用户做数据权限区分的步骤如下,创建新的文件夹->import导入dashboard->为dashboard设置星标->创建用户->创建team->选择用户->设置权限->选择对应文件夹,而对于另一类拥有不同数据权限的用户或者角色,又需要在import导入dashboard的步骤重新复制一份配置,修改变量重新分配,以此类推复杂场景下使用十分困难。
2、无法针对复杂的用户/角色体系进行设计分配权限。
3、无法与已有的,或者其他独立的业务***权限管理进行对接。
4、具体使用过程中,在Grafana上管理一套权限***较为困难,而直接提供Grafana地址供相关用户成员进行访问不太现实(比如期望图表和业务***高内聚,而不是分开),存在各种管理上的问题。
综上,不使用Grafana等可视化开源程序进行数据呈现的话,需要耗费更多的人力物力,且各个业务***中的数据展示图表无法得到有效的复用。但是直接使用Grafana图表,又会面临产品需求不符,用户数据权限难以分配等问题。基于此,本发明实施例提供了一种可视化图表展示方法、***及电子设备,该技术可以应用于需要展示Grafana对象的可视化图表的应用中。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种可视化图表展示方法进行介绍,方法应用于业务服务器;业务服务器通过Nginx服务器与Grafana服务器通信连接;其中,业务服务器所属的业务***泛指已经存在或未来即将开发的,具有权限管理特征的应用***,包括但不仅限于网页管理***、手机H5应用。Nginx服务器是一个开源的,支持高性能、高并发的Web服务和代理服务软件。Grafana服务器是一个跨平台的开源的度量分析和可视化工具,可以可视化的查询并展示采集的数据,通过和一些时间序列数据库进行配合,用于因特网基础设施或者其他应用分析领域。
业务服务器中预先配置有每个用户对Grafana服务器中不同Grafana对象的使用权限;业务服务器中的查询字段与Grafana服务器中的查询变量相对应;上述Grafana对象可以理解为在Grafana服务器中所预先配置的不同对象,这些对象的相关图表可以在Grafana的图表面板中进行展示,比如,通过不同的gameid可以表示不同的游戏,不同的游戏可以对应上述不同Grafana对象,每种游戏的游戏相关数据可以在Grafana的图表面板中展示;可以根据实际业务需求,在业务服务器中配置不同用户对不同Grafana对象的使用权限,比如,用户A只具有game01和game02的游戏相关数据的使用权限,用户B只具有game01和game03的游戏相关数据的使用权限等。
业务服务器中,所设置的查询字段通常根据Grafana服务器中的查询变量确定,比如,Grafana服务器中,配置dashboard(图表面板,一个或者多个图表混合展示的面板页面)时,可以确定Grafana服务器分配给该dashboard的唯一标识符,以及该图表面板需要控制的查询变量,比如,查询变量中,变量的name配置为“gameid”、Label为“游戏”等,则相应的业务服务器中,通常需要设置相应字段值为唯一标识符的查询字段,具体的变量名称对应的查询字段等,还可以根据具体业务需求设计其他字段,如图表种类、描述说明、分配角色/用户,状态等等;如图1所示,该方法包括如下步骤:
步骤S102,响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限。
上述目标Grafana对象可以理解为用户想要查看的具体的Grafana对象,比如,用户想要查看game01对应的游戏的可视化图表,则game01对应的游戏即为上述目标Grafana对象;通常在业务服务器的查询字段中所包含的其他字段,如“resource_key”、“所属产品”、“所属模块”、“图表分类”、“验证方式”等字段可以由业务侧的管理人员预先配置好,用户只需要在查询变量对应的查询字段中选择具体想要查看的对象的标识,如game01,以及在其他查询字段中填写可视化图表对应的数据的开始时间和结束时间即可,当业务服务器的查询字段中的查询参数都填充之后,用户可以点击搜索,业务服务器接收到该查询请求后,需要先判断该用户是否具有使用该目标Grafana对象的权限。
步骤S104,如果用户具有目标Grafana对象的使用权限,通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息。
上述文件信息通常是Grafana服务器返回的目标Grafana对象对应的html文档,其中,html是一种网页的超文本标记语言,包括一系列标签,通过这些标签构成网页的整体结构骨架,可以将网络上的文档格式统一;如果经判断,确认该用户具有目标Grafana对象的使用权限,比如,该目标Grafana对象包含在预先为该用户设置的具有使用权限的Grafana对象清单中,则可以通过Nginx服务器,从Grafana服务器中获取该目标Grafana对象对应的html文档;该html文档中通常还包括脚本、图片、样式文件及需要引用的其他资源等。
步骤S106,基于文件信息,展示目标Grafana对象对应的可视化图表。
上述可视化图表的数量可以是一个或多个;业务服务器在获取到文件信息后,就可以根据获取的文件信息,向用户展示想要查询的目标Grafana对象对应的可视化图表,比如,目标Grafana对象为game01对应的游戏,则可以向用户展示该game01对应的游戏的相关游戏数据对应的可视化图表。
上述可视化图表展示方法,应用于业务服务器;业务服务器通过Nginx服务器与Grafana服务器通信连接;业务服务器中预先配置有每个用户对Grafana服务器中不同Grafana对象的使用权限;业务服务器中的查询字段与Grafana服务器中的查询变量相对应;方法包括:响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限;如果用户具有目标Grafana对象的使用权限,通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息;基于文件信息,展示目标Grafana对象对应的可视化图表。该方式在业务服务器中配置有用户对不同Grafana对象的使用权限,在判断用户具有目标Grafana对象的使用权限后,只需要从Grafana服务器获取相应的文件信息,即可展示对应的可视化图表,不需要用户自主开发图表,也不需要对Grafana服务器进行二次开发或对不同业务设置权限,从而降低了权限控制冗余复杂度,节省了人力资源和时间成本。
在一可选的实施方式中,该方法在上述实施例方法的基础上实现,该方法中,业务服务器包括:业务前端和业务后端;上述业务前端通常是用户直接能看到的页面,所有人都可以访问,可以理解为是浏览器;业务后端通常是有权限的运营人员或特殊用户有权限登陆后才看得到的页面。
在实际实现时,Grafana服务器对应的管理人员通过Grafana服务器配置dashboard(图表面板),确定Grafana服务器分配给该dashboard的唯一标识符,以及该dashboard所需要控制的查询变量,该查询变量通常根据具体需求场景或者sql执行语句由人工确定;比如某张图表的数据源来源是一条sql,select xx from table where gameid=$gameid,这条语句中的$gameid就是变量,图表可以根据$gameid的变化去查询不同游戏的数据。而每张图表的数据来源都由具体的业务场景决定,所以变量通常也都是各不相同的。根据sql语句确定需要控制的查询变量时,可以从获取到的sql执行语句中提取关键词,根据关键词确定查询变量,比如,一条sql语句中有特别字符标识的模板字符串,比如$gameid,这通常是事先规定好的变量形式,方便后续替换为实际值。
如图2所示的一种Grafana图表面板的Variable(变量)配置界面示意图,其中包括name(变量名称),如gameid;Type(类型),如Query;Label(标签),如游戏等。如图3所示的一种图表面板下某个具体图表的关联sql执行语句的示意图,其中包括$gameid这一变量。
业务服务器的管理人员可以设计相关的表结构,较为重要的是配置表,配置表的字段主要以具体的Grafana图表面板的资源维度进行设计,比如上述唯一标识符,查询条件配置,其他可以根据具体业务需求设计,比如,图表种类、描述说明、分配角色/用户,状态等等。
通常需要配置一设计页面以供业务服务器的管理人员配置上述配置表中所描述的字段,比如,图表种类,图表在Grafana中的唯一标识符,有哪些参数变量等,可以存在数据库的表里。方便后续转发时拼接替换。查询条件可以根据业务***自身情况进行设置;单个查询条件存在英文名称的维度对应上述所提及的图表面板中的查询变量,主要是因为Grafana变量设置为英文比较合适,但是在业务***里需要有中文的标签解释说明。比如,Grafana某个图表面板设置有变量gameid,那么在业务***配置该图表参数的时候,就需要有一行配置针对gameid,比如是否必填,中文解释是什么,用的是下拉框还是输入框作为输入形式等。其他字段根据具体的业务需求确定,比如是否必填,标签名,表单控件类型以及数据源等等。
如图4所示的一种配置页面的示意图,其中包括:resource_key字段、所属产品、所属模块、图表分类、验证方式、是否全局图表,以及具体的查询条件设置字段。具体的配置过程通常需要人工配置,上述所提及的角色/用户字段同样重要。对于该项的配置,可以确保某张Grafana图表面板的权限是否可被部分用户所观测,使其依赖于具体的业务***,而非由Grafana服务器自身的权限管理***决定,即根据业务服务器的权限管理配置业务***上Grafana图表的可见权限,普通用户或者角色,根据管理人员的配置决定是否能看到相关图表。
因为业务服务器的图表的查询条件配置完全由业务自身决定,所以,可以由此控制具体数据权限。比如假设该Grafana图表的主体数据是游戏,在使用下拉组件调用接口获取数据源时,就可由业务服务器进行数据权限控制。这里的数据源指的是业务服务器的数据源。如果Grafana图表是为了展示某种游戏的营收数据,变量自然就是游戏相关的gameid。但是在Grafana服务器中并没有办法控制用户选择什么游戏,即没有权限管理。这时候就要业务服务器作为一层中间层处理权限,而业务服务器可以控制每个用户的游戏权限,每个用户具有哪些游戏的使用权限等,权限内可选的游戏范围即为上述的数据源。
该方法包括如下步骤:
步骤一,通过业务前端接收针对目标Grafana对象的查询请求,将查询请求中携带的查询参数拼接为URL,将URL传递给iframe标签的src属性,并向业务后端发送src属性对应的资源地址;其中,查询参数中包括目标Grafana对象的对象标识。
上述URL(uniform resource locator,统一资源定位符)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址;上述iframe标签的作用是文档中的文档,iframe元素会创建包含另外一个文档的内联框架(即行内框架)。上述src属性规定在iframe标签中显示的文档的URL。上述对象标识可以用于指示目标Grafana对象,比如,game01等,不同的Grafana对象通常具有不同的对象标识。在实际实现时,用户可以通过业务前端的浏览器页面填入相关查询参数,比如,按照图4中的查询条件设置字段,选择具体的gameid,由于业务服务器中预先配置了该用户的权限,因此,用户点击gameid这一字段时,可以显示该用户具有使用权限的一个或多个Grafana对象所对应的gameid,比如,显示game01、game03等,用户从中选择想要查看的具体的gameid即可,比如,直接选择game01等,在其他字段都填写完整后,点击搜索后,业务前端可以将该页面填充的查询参数进行拼接,组成URL,比如,将图表面板的唯一标识符、具体的对象标识、数据的开始时间和结束时间等拼接组成URL,将组成的URL传递给iframe标签的src属性,业务前端会根据自身特性,请求iframe标签的src属性对应的资源地址,并将该资源地址发送至业务后端。
步骤二,响应于业务后端接收到资源地址,通过业务后端判断发起查询请求的用户是否具有目标Grafana对象的使用权限。
该步骤二具体可以包括:
步骤20,响应于业务后端接收到资源地址,通过业务后端获取预先配置的用户具有使用权限的第一Grafana对象,判断目标Grafana对象是否属于第一Grafana对象。
上述第一Grafana对象可以包括一个Grafana对象,也可以是多个不同的Grafana对象的集合,具体与用户权限相关,该第一Grafana对象可以通过各Grafana对象的对象标识表示,比如,game01、game03等,则第一Grafana对象可以是一个Grafana对象的对象标识,或多个Grafana对象的对象标识的集合;当业务后端接收到资源地址后,可以获取预先配置的该用户具有使用权限的第一Grafana对象,如果第一Grafana对象是以对象标识表示,则可以将该目标Grafana对象的对象标识与第一Grafana对象的对象标识一一进行比对,判断目标Grafana对象的对象标识是否包含在第一Grafana对象的对象标识中。
步骤21,如果目标Grafana对象属于第一Grafana对象,确定用户具有目标Grafana对象的使用权限。
步骤22,如果目标Grafana对象不属于第一Grafana对象,确定用户不具有目标Grafana对象的使用权限。
如果目标Grafana对象属于第一Grafana对象,比如,目标Grafana对象的对象标识包含在第一Grafana对象的对象标识中,表示预先配置有该用户对目标Grafana对象的使用权限,此时,可以确认用户具有目标Grafana对象的使用权限,可以继续执行后续步骤;如果目标Grafana对象的对象标识未包含在第一Grafana对象的对象标识中,表示预先未配置该用户对目标Grafana对象的使用权限,此时,可以确认用户不具有目标Grafana对象的使用权限,不再继续执行后续步骤,结束。
步骤三,如果用户具有目标Grafana对象的使用权限,通过业务后端根据资源地址,获取查询请求对应的第一路径,以及将第一路径发送至Nginx服务器;其中,Nginx服务器用于对第一路径添加包含有用户令牌标识的认证请求头,得到第二路径,并将第二路径发送至Grafana服务器,以使Grafana服务器根据第二路径返回目标Grafana对象对应的文件信息。
在通过业务后端确认用户具有目标Grafana对象的使用权限后,为了避免用户通过其他方式传一些不必要或者危险的信息,通常会与该业务服务器之前配置好的查询参数进行比对,保证全都符合配置的要求,即会对查询参数再次验证,比如,确认该用户是否有查询参数中某项数据的权限等,验证通过后,可以将资源地址适配成符合Grafana服务器的路径格式要求的第一路径,即适配成Grafana图表大盘的路径形式,重定向到Nginx服务器进行转发。考虑到网络请求可能存在安全性问题,Nginx服务器接收到第一路径后,可以对该第一路径添加上包含有用户令牌标识的认证请求头,得到第二路径,比如,可以添加用户相关的token等,用户在第一次通过业务前端登录时,可以生成该token;将该第二路径发送至Grafana服务器,Grafana服务器可以根据该认证请求头验证该请求的访问合法性,在确认合法后,可以根据该第二路径查询到对应的文件信息,并将该文件信息通过业务后端返回至业务前端。
步骤四,通过业务前端加载文件信息;其中,文件信息中包括与关联资源对应的资源信息;关联资源包括:目标Grafana对象对应的图表的数量、颜色和样式;资源信息包括:关联资源对应的接口信息和/或链接地址信息。
业务前端接收到文件信息后,开始加载该文件信息,该文件信息中通常附带有目标Grafana对象对应的图表的数量、颜色和样式等关联资源对应的接口信息和/或链接地址信息等。
步骤五,通过Nginx服务器向Grafana服务器发送获取关联资源的资源请求。
业务前端根据上述关联资源的资源信息,生成获取该关联资源的资源请求,并通过Nginx服务器转发至Grafana服务器,Grafana服务器根据请求中携带的接口信息和/或链接地址信息获取对应的关联资源,并将获取到的关联资源返回至业务前端,根据这些关联资源,可以确定需要展示的目标Grafana对象对应的图表的数量、颜色和样式等。
步骤六,通过业务前端接收Grafana服务器返回的资源请求对应的关联资源,基于文件信息和关联资源,展示目标Grafana对象对应的可视化图表。
目标Grafana对象对应多个待展示图表;该步骤六具体可以通过以下步骤60至步骤62实现:
步骤60,通过业务前端接收Grafana服务器返回的资源请求对应的关联资源,通过业务前端调用查询请求对应的图表面板的预设接口,以获取目标Grafana对象对应的多个sql模板;其中,每个sql模板对应一个待展示图表。
业务前端接收到Grafana服务器返回的资源请求对应的关联资源后,可以调用查询请求对应的图表面板的预设接口,比如,可以调用一个类似于/api/dashboards/uid/{resource_key}的接口,其中,resource_key即对应Grafana服务器配置图表面板时生成的唯一标识符,以请求该图表面板对应的多个sql模板,即该图表面板的rawSql(即原始数据来源的sql语句),Grafana服务器中,目标Grafana对象的多个待展示图表会显示在图表展示面板中,每个sql模板对应一个待展示图表。
步骤61,将查询请求中的查询参数分别与每个sql模板结合,得到sql语句列表。
将查询请求中携带的查询参数与上述获取获取的所有sql模板相结合,生成合法的sql列表;具体的,可以将查询参数替换到每个sql模板中,每个查询参数对应的位置,比如,sql模板中包括gameid,实际的查询参数中的gameid为game01,则可以将sql模板中的gameid替换为game01。
步骤62,通过业务前端按照sql语句列表,获取每个待展示图表分别对应的每个目标数据,以渲染出目标Grafana对象对应的可视化图表。
该步骤62具体可以通过以下步骤A至步骤D实现:
步骤A,针对每个待展示图表,向业务后端发送针对该待展示图表的数据资源获取请求。
业务前端发出针对每个待展示图表的数据资源获取请求,为了避免sql注入等安全性的问题,或者部分恶意用户直接通过调用接口,通过修改变量值获取权限外数据的问题,通常还需要进行额外处理,通过Nginx服务器将该数据资源获取请求拦截到业务后端,业务后端通过请求的http请求头referer获取相关请求参数,验证基础的数据权限/参数格式等信息。
步骤B,通过业务后端获取该待展示图表对应的目标sql模板,将查询参数与目标sql模板结合,得到目标sql语句。
业务后端分别获取每个待展示图表分别对应的目标sql模块,用实际的查询参数进行模板参数替换,得到每个待展示图表分别对应的目标sql语句。
步骤C,如果通过业务后端判断目标sql语句包含在sql语句列表中,将数据资源获取请求发送至Grafana服务器,以通过Grafana服务器向业务前端返回数据资源获取请求对应的目标数据。
对于每个待展示图表对应的目标sql语句,通过业务后端将该目标sql语句与sql语句列表进行比对,判断在该目标sql语句是否包含在sql语句列表中,如果在sql语句列表中包含该目标sql语句,则业务后端会将相应的数据资源获取请求发送至Grafana服务器,Grafana服务器根据该数据资源获取请求获取相应的目标数据,并通过业务后端将目标数据返回至业务前端。如果在sql语句列表中不包含该目标sql语句,则生成对应的提示信息,以提示用户信息出错,无法获取对应的目标数据。
步骤D,通过业务前端基于每个待展示图表分别对应的每个目标数据,渲染出目标Grafana对象对应的可视化图表。
如图5所示的一种可视化图表的示意图,业务前端根据每个待展示图表对应的目标数据,即可渲染呈现出经过业务服务器进行权限控制后的目标Grafana对象对应的可视化图表。
上述可视化图表展示方法,提供了一种基于现有业务服务器对接Grafana服务器的方案,可以解决在使用Grafana进行可视化图表展示过程中,存在的权限控制复杂冗余,图表无法进行有效复用的问题。将Grafana对象的权限控制进行切割,交由相关接入的业务服务器进行颗粒度更低的控制。该方式可以节约人力物力成本,对接的业务服务器只需要开发一套配置模块,后续就可以根据实际需要,动态配置和Grafana服务器相对应的图表进行展示。通过颗粒化Grafana对象的权限控制,将其权限控制有效得与实际业务服务器已有的权限模块相对接,更贴合实际需求的需要,方便管理。
本发明实施例提供了一种可视化图表展示***,包括:业务服务器、Nginx服务器和Grafana服务器;业务服务器通过Nginx服务器与Grafana服务器通信连接;业务服务器中预先配置有每个用户对Grafana服务器中不同Grafana对象的使用权限;业务服务器中的查询字段与Grafana服务器中的查询变量相对应;
业务服务器用于响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限;如果用户具有目标Grafana对象的使用权限,通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息;基于文件信息,展示目标Grafana对象对应的可视化图表。
上述可视化图表展示***,在业务服务器中配置有用户对不同Grafana对象的使用权限,在判断用户具有目标Grafana对象的使用权限后,只需要从Grafana服务器获取相应的文件信息,即可展示对应的可视化图表,不需要用户自主开发图表,也不需要对Grafana服务器进行二次开发或对不同业务设置权限,从而降低了权限控制冗余复杂度,节省了人力资源和时间成本。
在一可选的实施方式中,业务服务器包括业务前端和业务后端;业务前端用于接收针对目标Grafana对象的查询请求,将查询请求中携带的查询参数拼接为URL,将URL传递给iframe标签的src属性,并向业务后端发送src属性对应的资源地址;业务后端用于接收资源地址,判断发起查询请求的用户是否具有目标Grafana对象的使用权限,如果用户具有目标Grafana对象的使用权限,根据资源地址,获取查询请求对应的第一路径,以及将第一路径发送至Nginx服务器;Nginx服务器用于对第一路径添加包含有用户令牌标识的认证请求头,得到第二路径,并将第二路径发送至Grafana服务器;Grafana服务器用于根据第二路径返回目标Grafana对象对应的文件信息;业务前端用于基于文件信息,展示目标Grafana对象对应的可视化图表。
在一可选的实施方式中,Grafana服务器还用于:验证认证请求头中的用户令牌标识,验证Grafana服务器是否允许用户查询第二路径对应的文件信息;如果允许用户查询第二路径对应的文件信息,通过业务后端向业务前端返回第二路径对应的文件信息。
Grafana服务器可以根据该认证请求头中的用户令牌标识,验证该请求的访问合法性,即验证是否允许用户查询第二路径对应的文件信息,在确认合法后,可以根据该第二路径查询到对应的文件信息,并将该文件信息通过业务后端返回至业务前端,如果确认不合法,则不会返回第二路径对应的文件信息,此时可以生成相应的提示信息,以提示用户不允许获取该文件信息。
为方便理解,参见图6所示的一种可视化图表展示的流程示意图,普通用户或者角色,进入业务服务器的图表查看页面,根据管理人员动态配置的查询条件进行搜索,具体可以根据业务服务器的相关主体数据权限,在查询搜索阶段就进行权限控制拦截处理,用户点击gameid这一字段时,可以显示该用户具有使用权限的一个或多个Grafana对象所对应的gameid,比如,显示game01、game03等,用户从中选择想要查看的具体的gameid即可,比如,直接选择game01等,业务前端根据普通用户所选择的查询条件拼接相关的查询参数,进行拼接参数请求文档,网页内部内嵌iframe元素,src来源指向同域接口,将该接口拼接上查询参数,得到src属性对应的资源地址发送至业务后端,业务后端验证用户权限/参数,验证通过后,将资源地址适配成Grafana大盘路径(对应上述第一路径),通过Nginx添加认证请求头后,转发至Grafana服务器,Grafana服务器返回大盘文档html(对应上述文件信息),业务前端的iframe加载文档,请求相关网页资源(对应上述关联资源),通过Ngnix转发至Grafana服务器,Grafana服务器返回相关资源,业务前端的iframe内部大盘网页初始化,请求面板全部图表配置(对应上述多个sql模板),每张图表请求数据资源(对应上述针对每个待展示图表,向业务后端发送针对该待展示图表的数据资源获取请求),Nginx拦截数据请求至业务后端,业务后端获取请求参数,并带入参数验证(获取该待展示图表对应的目标sql模板,将查询参数与目标sql模板结合,得到目标sql语句),如果验证通过,Grafana服务器向业务前端返回数据资源获取请求对应的目标数据,业务前端根据数据渲染可视化图表,具体可以在内嵌标签里展示可视化图表。
本公开实施例还提供了一种电子设备,参见图7所示,该电子设备包括处理器160和存储器161,该存储器161存储有能够被处理器130执行的机器可执行指令,该处理器160执行机器可执行指令以实现上述可视化图表展示方法。
进一步地,图7所示的电子设备还包括总线162和通信接口163,处理器160、通信接口163和存储器161通过总线162连接。
其中,存储器161可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口163(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线162可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器160可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器160中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器160可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器161,处理器160读取存储器161中的信息,结合其硬件完成前述实施例的方法的步骤,方法应用于业务服务器;业务服务器通过Nginx服务器与Grafana服务器通信连接;业务服务器中预先配置有每个用户对Grafana服务器中不同Grafana对象的使用权限;业务服务器中的查询字段与Grafana服务器中的查询变量相对应;具体执行以下步骤:
响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限;如果用户具有目标Grafana对象的使用权限,通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息;基于文件信息,展示目标Grafana对象对应的可视化图表。
其具体实施例和具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在一可选的实施方式中,业务服务器包括:业务前端和业务后端;处理器在执行响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限时,具体用于:通过业务前端接收针对目标Grafana对象的查询请求,将查询请求中携带的查询参数拼接为URL,将URL传递给iframe标签的src属性,并向业务后端发送src属性对应的资源地址;其中,查询参数中包括目标Grafana对象的对象标识;响应于业务后端接收到资源地址,通过业务后端判断发起查询请求的用户是否具有目标Grafana对象的使用权限。
在一可选的实施方式中,处理器在执行通过业务后端判断发起查询请求的用户是否具有目标Grafana对象的使用权限时,具体用于:通过业务后端获取预先配置的用户具有使用权限的第一Grafana对象,判断目标Grafana对象是否属于第一Grafana对象;如果目标Grafana对象属于第一Grafana对象,确定用户具有目标Grafana对象的使用权限;如果目标Grafana对象不属于第一Grafana对象,确定用户不具有目标Grafana对象的使用权限。
在一可选的实施方式中,处理器在执行通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息时,具体用于:通过业务后端根据资源地址,获取查询请求对应的第一路径,以及将第一路径发送至Nginx服务器;其中,Nginx服务器用于对第一路径添加包含有用户令牌标识的认证请求头,得到第二路径,并将第二路径发送至Grafana服务器,以使Grafana服务器根据第二路径返回目标Grafana对象对应的文件信息。
在一可选的实施方式中,业务服务器包括:业务前端和业务后端;处理器在执行基于文件信息,展示目标Grafana对象对应的可视化图表时,具体用于:通过业务前端加载文件信息;其中,文件信息中包括与关联资源对应的资源信息;关联资源包括:目标Grafana对象对应的图表的数量、颜色和样式;资源信息包括:关联资源对应的接口信息和/或链接地址信息;通过Nginx服务器向Grafana服务器发送获取关联资源的资源请求;通过业务前端接收Grafana服务器返回的资源请求对应的关联资源,基于文件信息和关联资源,展示目标Grafana对象对应的可视化图表。
在一可选的实施方式中,处理器在执行基于文件信息和关联资源,展示目标Grafana对象对应的可视化图表时,具体用于:通过业务前端调用查询请求对应的图表面板的预设接口,以获取目标Grafana对象对应的多个sql模板;其中,每个sql模板对应一个待展示图表;将查询请求中的查询参数分别与每个sql模板结合,得到sql语句列表;通过业务前端按照sql语句列表,获取每个待展示图表分别对应的每个目标数据,以渲染出目标Grafana对象对应的可视化图表。
在一可选的实施方式中,处理器在执行通过业务前端按照sql语句列表,获取每个待展示图表分别对应的每个目标数据,以渲染出目标Grafana对象对应的可视化图表时,具体用于:针对每个待展示图表,向业务后端发送针对该待展示图表的数据资源获取请求;通过业务后端获取该待展示图表对应的目标sql模板,将查询参数与目标sql模板结合,得到目标sql语句;如果通过业务后端判断目标sql语句包含在sql语句列表中,将数据资源获取请求发送至Grafana服务器,以通过Grafana服务器向业务前端返回数据资源获取请求对应的目标数据;通过业务前端基于每个待展示图表分别对应的每个目标数据,渲染出目标Grafana对象对应的可视化图表。
通过上述方式,响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限;如果用户具有目标Grafana对象的使用权限,通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息;基于文件信息,展示目标Grafana对象对应的可视化图表。该方式在业务服务器中配置有用户对不同Grafana对象的使用权限,在判断用户具有目标Grafana对象的使用权限后,只需要从Grafana服务器获取相应的文件信息,即可展示对应的可视化图表,不需要用户自主开发图表,也不需要对Grafana服务器进行二次开发或对不同业务设置权限,从而降低了权限控制冗余复杂度,节省了人力资源和时间成本。
本公开实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器执行以下步骤:
响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限;如果用户具有目标Grafana对象的使用权限,通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息;基于文件信息,展示目标Grafana对象对应的可视化图表。
其具体实施例和具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在一可选的实施方式中,业务服务器包括:业务前端和业务后端;处理器在执行响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限时,具体用于:通过业务前端接收针对目标Grafana对象的查询请求,将查询请求中携带的查询参数拼接为URL,将URL传递给iframe标签的src属性,并向业务后端发送src属性对应的资源地址;其中,查询参数中包括目标Grafana对象的对象标识;响应于业务后端接收到资源地址,通过业务后端判断发起查询请求的用户是否具有目标Grafana对象的使用权限。
在一可选的实施方式中,处理器在执行通过业务后端判断发起查询请求的用户是否具有目标Grafana对象的使用权限时,具体用于:通过业务后端获取预先配置的用户具有使用权限的第一Grafana对象,判断目标Grafana对象是否属于第一Grafana对象;如果目标Grafana对象属于第一Grafana对象,确定用户具有目标Grafana对象的使用权限;如果目标Grafana对象不属于第一Grafana对象,确定用户不具有目标Grafana对象的使用权限。
在一可选的实施方式中,处理器在执行通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息时,具体用于:通过业务后端根据资源地址,获取查询请求对应的第一路径,以及将第一路径发送至Nginx服务器;其中,Nginx服务器用于对第一路径添加包含有用户令牌标识的认证请求头,得到第二路径,并将第二路径发送至Grafana服务器,以使Grafana服务器根据第二路径返回目标Grafana对象对应的文件信息。
在一可选的实施方式中,业务服务器包括:业务前端和业务后端;处理器在执行基于文件信息,展示目标Grafana对象对应的可视化图表时,具体用于:通过业务前端加载文件信息;其中,文件信息中包括与关联资源对应的资源信息;关联资源包括:目标Grafana对象对应的图表的数量、颜色和样式;资源信息包括:关联资源对应的接口信息和/或链接地址信息;通过Nginx服务器向Grafana服务器发送获取关联资源的资源请求;通过业务前端接收Grafana服务器返回的资源请求对应的关联资源,基于文件信息和关联资源,展示目标Grafana对象对应的可视化图表。
在一可选的实施方式中,处理器在执行基于文件信息和关联资源,展示目标Grafana对象对应的可视化图表时,具体用于:通过业务前端调用查询请求对应的图表面板的预设接口,以获取目标Grafana对象对应的多个sql模板;其中,每个sql模板对应一个待展示图表;将查询请求中的查询参数分别与每个sql模板结合,得到sql语句列表;通过业务前端按照sql语句列表,获取每个待展示图表分别对应的每个目标数据,以渲染出目标Grafana对象对应的可视化图表。
在一可选的实施方式中,处理器在执行通过业务前端按照sql语句列表,获取每个待展示图表分别对应的每个目标数据,以渲染出目标Grafana对象对应的可视化图表时,具体用于:针对每个待展示图表,向业务后端发送针对该待展示图表的数据资源获取请求;通过业务后端获取该待展示图表对应的目标sql模板,将查询参数与目标sql模板结合,得到目标sql语句;如果通过业务后端判断目标sql语句包含在sql语句列表中,将数据资源获取请求发送至Grafana服务器,以通过Grafana服务器向业务前端返回数据资源获取请求对应的目标数据;通过业务前端基于每个待展示图表分别对应的每个目标数据,渲染出目标Grafana对象对应的可视化图表。
通过上述方式,响应于针对目标Grafana对象的查询请求,判断发起查询请求的用户是否具有目标Grafana对象的使用权限;如果用户具有目标Grafana对象的使用权限,通过Nginx服务器向Grafana服务器获取目标Grafana对象对应的文件信息;基于文件信息,展示目标Grafana对象对应的可视化图表。该方式在业务服务器中配置有用户对不同Grafana对象的使用权限,在判断用户具有目标Grafana对象的使用权限后,只需要从Grafana服务器获取相应的文件信息,即可展示对应的可视化图表,不需要用户自主开发图表,也不需要对Grafana服务器进行二次开发或对不同业务设置权限,从而降低了权限控制冗余复杂度,节省了人力资源和时间成本。
本发明实施例所提供的可视化图表展示方法、***及电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种可视化图表展示方法,其特征在于,所述方法应用于业务服务器;所述业务服务器通过Nginx服务器与Grafana服务器通信连接;所述业务服务器中预先配置有每个用户对所述Grafana服务器中不同Grafana对象的使用权限;所述业务服务器中的查询字段与所述Grafana服务器中的查询变量相对应;所述方法包括:
响应于针对目标Grafana对象的查询请求,判断发起所述查询请求的用户是否具有所述目标Grafana对象的使用权限;
如果所述用户具有所述目标Grafana对象的使用权限,通过所述Nginx服务器向所述Grafana服务器获取所述目标Grafana对象对应的文件信息;
基于所述文件信息,展示所述目标Grafana对象对应的可视化图表。
2.根据权利要求1所述的方法,其特征在于,所述业务服务器包括:业务前端和业务后端;响应于针对目标Grafana对象的查询请求,判断发起所述查询请求的用户是否具有所述目标Grafana对象的使用权限包括:
通过所述业务前端接收针对目标Grafana对象的查询请求,将所述查询请求中携带的查询参数拼接为URL,将所述URL传递给iframe标签的src属性,并向所述业务后端发送所述src属性对应的资源地址;其中,所述查询参数中包括所述目标Grafana对象的对象标识;
响应于所述业务后端接收到所述资源地址,通过所述业务后端判断发起所述查询请求的用户是否具有所述目标Grafana对象的使用权限。
3.根据权利要求2所述的方法,其特征在于,通过所述业务后端判断发起所述查询请求的用户是否具有所述目标Grafana对象的使用权限包括:
通过所述业务后端获取预先配置的所述用户具有使用权限的第一Grafana对象,判断所述目标Grafana对象是否属于所述第一Grafana对象;
如果所述目标Grafana对象属于所述第一Grafana对象,确定所述用户具有所述目标Grafana对象的使用权限;
如果所述目标Grafana对象不属于所述第一Grafana对象,确定所述用户不具有所述目标Grafana对象的使用权限。
4.根据权利要求2所述的方法,其特征在于,通过所述Nginx服务器向所述Grafana服务器获取所述目标Grafana对象对应的文件信息包括:
通过所述业务后端根据所述资源地址,获取所述查询请求对应的第一路径,以及将所述第一路径发送至所述Nginx服务器;其中,所述Nginx服务器用于对所述第一路径添加包含有用户令牌标识的认证请求头,得到第二路径,并将所述第二路径发送至所述Grafana服务器,以使所述Grafana服务器根据所述第二路径返回所述目标Grafana对象对应的文件信息。
5.根据权利要求1所述的方法,其特征在于,所述业务服务器包括:业务前端和业务后端;基于所述文件信息,展示所述目标Grafana对象对应的可视化图表的步骤包括:
通过所述业务前端加载所述文件信息;其中,所述文件信息中包括与关联资源对应的资源信息;所述关联资源包括:所述目标Grafana对象对应的图表的数量、颜色和样式;所述资源信息包括:所述关联资源对应的接口信息和/或链接地址信息;
通过所述Nginx服务器向所述Grafana服务器发送获取所述关联资源的资源请求;
通过所述业务前端接收所述Grafana服务器返回的所述资源请求对应的关联资源,基于所述文件信息和所述关联资源,展示所述目标Grafana对象对应的可视化图表。
6.根据权利要求5所述的方法,其特征在于,所述目标Grafana对象对应多个待展示图表;基于所述文件信息和所述关联资源,展示所述目标Grafana对象对应的可视化图表的步骤包括:
通过所述业务前端调用所述查询请求对应的图表面板的预设接口,以获取所述目标Grafana对象对应的多个sql模板;其中,每个sql模板对应一个待展示图表;
将所述查询请求中的查询参数分别与每个所述sql模板结合,得到sql语句列表;
通过所述业务前端按照所述sql语句列表,获取每个待展示图表分别对应的每个目标数据,以渲染出所述目标Grafana对象对应的可视化图表。
7.根据权利要求6所述的方法,其特征在于,通过所述业务前端按照所述sql语句列表,获取每个待展示图表分别对应的每个目标数据,以渲染出所述目标Grafana对象对应的可视化图表的步骤包括:
针对每个所述待展示图表,向所述业务后端发送针对该待展示图表的数据资源获取请求;
通过所述业务后端获取该待展示图表对应的目标sql模板,将所述查询参数与所述目标sql模板结合,得到目标sql语句;
如果通过所述业务后端判断所述目标sql语句包含在所述sql语句列表中,将所述数据资源获取请求发送至所述Grafana服务器,以通过所述Grafana服务器向所述业务前端返回所述数据资源获取请求对应的目标数据;
通过所述业务前端基于每个待展示图表分别对应的每个所述目标数据,渲染出所述目标Grafana对象对应的可视化图表。
8.一种可视化图表展示***,其特征在于,包括:业务服务器、Nginx服务器和Grafana服务器;所述业务服务器通过Nginx服务器与Grafana服务器通信连接;所述业务服务器中预先配置有每个用户对所述Grafana服务器中不同Grafana对象的使用权限;所述业务服务器中的查询字段与所述Grafana服务器中的查询变量相对应;
所述业务服务器用于响应于针对目标Grafana对象的查询请求,判断发起所述查询请求的用户是否具有所述目标Grafana对象的使用权限;如果所述用户具有所述目标Grafana对象的使用权限,通过所述Nginx服务器向所述Grafana服务器获取所述目标Grafana对象对应的文件信息;基于所述文件信息,展示所述目标Grafana对象对应的可视化图表。
9.根据权利要求8所述的***,其特征在于,其中,所述业务服务器包括业务前端和业务后端;
所述业务前端用于接收针对目标Grafana对象的查询请求,将所述查询请求中携带的查询参数拼接为URL,将所述URL传递给iframe标签的src属性,并向所述业务后端发送所述src属性对应的资源地址;
所述业务后端用于接收所述资源地址,判断发起所述查询请求的用户是否具有所述目标Grafana对象的使用权限,如果所述用户具有所述目标Grafana对象的使用权限,根据所述资源地址,获取所述查询请求对应的第一路径,以及将所述第一路径发送至所述Nginx服务器;
所述Nginx服务器用于对所述第一路径添加包含有用户令牌标识的认证请求头,得到第二路径,并将所述第二路径发送至所述Grafana服务器;
所述Grafana服务器用于根据所述第二路径返回所述目标Grafana对象对应的文件信息;
所述业务前端用于基于所述文件信息,展示所述目标Grafana对象对应的可视化图表。
10.根据权利要求9所述的***,其特征在于,所述Grafana服务器还用于:
验证所述认证请求头中的所述用户令牌标识,验证所述Grafana服务器是否允许所述用户查询所述第二路径对应的文件信息;
如果允许所述用户查询所述第二路径对应的文件信息,通过所述业务后端向所述业务前端返回第二路径对应的文件信息。
11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-7任一项所述的可视化图表展示方法。
12.一种机器可读存储介质,其特征在于,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现权利要求1-7任一项所述的可视化图表展示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111606.1A CN116049300A (zh) | 2023-01-30 | 2023-01-30 | 可视化图表展示方法、***及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111606.1A CN116049300A (zh) | 2023-01-30 | 2023-01-30 | 可视化图表展示方法、***及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116049300A true CN116049300A (zh) | 2023-05-02 |
Family
ID=86131359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310111606.1A Pending CN116049300A (zh) | 2023-01-30 | 2023-01-30 | 可视化图表展示方法、***及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116049300A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117520617A (zh) * | 2024-01-08 | 2024-02-06 | 慧新全智工业互联科技(青岛)有限公司 | 一种基于图表组件的数据信息展示方法 |
-
2023
- 2023-01-30 CN CN202310111606.1A patent/CN116049300A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117520617A (zh) * | 2024-01-08 | 2024-02-06 | 慧新全智工业互联科技(青岛)有限公司 | 一种基于图表组件的数据信息展示方法 |
CN117520617B (zh) * | 2024-01-08 | 2024-04-23 | 慧新全智工业互联科技(青岛)有限公司 | 一种基于图表组件的数据信息展示方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292231B (zh) | 从数据生成应用的方法和*** | |
US9076072B2 (en) | System and method for web page rendering test automation suite | |
US20170118268A1 (en) | Self describing configuration | |
US9015651B2 (en) | Gateway data distribution engine | |
US10496837B2 (en) | Support sharing the same table for protected and non-protected data columns | |
CN110663040A (zh) | 用于将仪表板安全嵌入内容管理***的方法及*** | |
US8244798B2 (en) | Techniques for sharing content between portals | |
CN108604278B (zh) | 具有对共享数据表的支持的自描述配置 | |
US20170116436A1 (en) | Automatic operation detection on protected field | |
AU2006326623A2 (en) | Remote module incorporation into a container document | |
WO2017024236A1 (en) | Building and managing data-processing attributes for modeled data sources | |
US20140047325A1 (en) | Centralized field rendering system and method | |
US10511453B2 (en) | Information processing system and charge calculation apparatus | |
EP3232335B1 (en) | Method and device for providing authentication information on web page | |
US9158932B2 (en) | Modeled authorization check implemented with UI framework | |
CN116049300A (zh) | 可视化图表展示方法、***及电子设备 | |
CN115392718A (zh) | 流程模型的处理方法、装置、设备及介质 | |
CN113568923A (zh) | 数据库中数据的查询方法和装置、存储介质及电子设备 | |
CN110866229B (zh) | 一种多平台账户权限统一管理方法及*** | |
CN110674426A (zh) | 网页行为上报方法和装置 | |
US20230185961A1 (en) | Data blurring | |
CN111752559B (zh) | 前后端分离***、方法、装置和存储介质 | |
GB2495813A (en) | Managing digital signatures in interactive documents | |
JP5516480B2 (ja) | 電子データ共有システム | |
US10218673B2 (en) | Web content display system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |