如何提取URL中的FQDN用于配置Grafana仪表盘数据链接
Grafana当前访问域名获取方案
Grafana没有提供直接返回当前访问FQDN的专属内置变量,但可以通过现有内置能力实现无硬编码的域名提取,适配任意访问地址场景。
方案1:全局变量正则提取(通用推荐)
Grafana自带全局变量${__url}会自动存储当前访问的完整仪表盘URL,配合Grafana内置的变量正则替换语法,即可直接提取协议+域名部分,不需要修改服务端配置,支持多域名访问的场景。
提取域名的变量写法:
${__url:regex:/(https?:\/\/[^/]+).*/$1/}
配置示例:
假设你原来硬编码的数据链接地址为http://localhost/dashboard/detail?id=${__value.raw},只需要把硬编码的http://localhost部分替换为上面的提取变量即可,替换后完整配置为:
${__url:regex:/(https?:\/\/[^/]+).*/$1/}/dashboard/detail?id=${__value.raw}
当你通过https://bingoke.com访问仪表盘时,该数据链接会自动生成https://bingoke.com/dashboard/detail?id=xxx的目标地址;如果通过其他域名访问同一实例,也会自动匹配当前访问的域名,不需要手动修改配置。
方案2:固定根地址变量(单域名场景适用)
如果你的Grafana实例仅通过单个固定域名对外提供服务,可以直接使用内置变量${GF_APP_URL},该变量会返回Grafana配置文件中root_url参数设置的固定根地址,不需要做正则处理,直接拼接后续路径即可。
注意:该变量为服务端加载的固定值,若实例支持多域名访问,变量值不会跟随用户实际访问域名变化,始终返回配置文件中预设的地址。
配置提示
- 正则提取方案兼容Grafana 7.0及以上所有正式版本,无需额外安装插件
- 配置过程中可以直接在数据链接编辑态悬停预览生成的链接地址,无需保存仪表盘即可验证提取结果
- 上述正则规则会自动识别非默认端口(如
https://bingoke.com:3000),提取的根地址会自动包含端口部分,不需要额外调整规则
内容的提问来源于stack exchange,提问作者Abraham Lugonzo
相关产品推荐
相关产品推荐

