菜单
Grafana文档 设置 设置图像渲染
企业 开源

设置图像渲染

Grafana支持将面板自动呈现为PNG图像。这允许Grafana自动生成面板的图像,包括在警报通知中,PDF导出,报告.PDF导出和报告仅在Grafana企业

注意:目前不支持仪表板的图像呈现。

在呈现图像时,PNG图像会临时写入文件系统。图像呈现时,PNG图像将临时写入png文件夹在Grafana数据文件夹中。

后台作业每10分钟运行一次,删除临时映像。属性,可以配置映像在删除之前应该存储多长时间temp_data_lifetime设置。

您还可以通过单击面板标题旁边的下拉箭头,然后单击来呈现PNG共享>直接链接渲染图像

警报和渲染限制

警报通知可以包含图像,但是同时呈现许多图像会使运行呈现器的服务器过载。有关如何配置此功能的说明,请参见concurrent_render_limit

安装Grafana图像渲染插件

注意:从Grafana v7.0.0开始,所有对PhantomJS的支持都被移除了。请使用Grafana图像渲染插件或远程渲染服务。

要安装插件,请参阅Grafana图像渲染器安装说明

配置

Grafana Image Renderer插件有许多用于插件或远程渲染模式的配置选项。

在插件模式下,可以直接在Grafana配置文件

在远程呈现模式下,可以在. json配置文件或者,对于其中一些,您可以使用环境变量覆盖配置默认值。

配置文件

您可以使用配置文件更新设置,请参见default.json为缺省值。注意,任何配置的环境变量都优先于配置文件设置。

当启动docker容器时,可以卷挂载自定义配置文件:

Docker运行命令-d——name=renderer——network=host -v /some/path/config.json:/usr/src/app/config. json。json grafana / grafana-image-renderer:最新

您可以看到一个使用自定义配置文件的docker-compose示例在这里

安全

注意:此特性在Image Renderer v3.6.1及更高版本中可用。

您可以通过指定一个秘密令牌来限制对呈现端点的访问。令牌应该在Grafana配置文件和渲染器配置文件中配置。当你在远程渲染模式下运行插件时,这个令牌很重要。

渲染器v3.6.1或更高版本需要具有此功能的Grafana版本。这些包括:

  • Grafana v9.1.2或更高版本
  • Grafana v9.0.8或更高版本的补丁发布
  • Grafana v8.5.11或更高版本的补丁版本
  • Grafana v8.4.11或更高版本的补丁版本
  • Grafana v8.3.11或更高版本的补丁版本
AUTH_TOKEN = -
{"security": {"authToken": "-"}}

看到Grafana配置如何在Grafana中配置令牌。

呈现模式

您可以通过配置呈现模式来指导如何创建无头浏览器实例。默认是默认的,其他支持的值为集群而且可重用的

默认的

默认模式将为每个请求创建一个新的浏览器实例。当处理多个并发请求时,这种模式会增加内存使用,因为它会同时启动多个浏览器。如果要设置要打开的浏览器的最大数量,则需要使用集群模式

注意:当使用默认的模式下,建议不要删除默认的Chromium标志——disable-gpu.当接收大量并发请求时,不使用此标志会导致木偶newPage函数冻结,导致请求超时并打开浏览器。

RENDERING_MODE =违约
{"rendering": {"mode": "default"}}

集群

集群模式下,可以配置可以并发执行多少浏览器实例或隐身页面。默认是浏览器并将确保最大数量的浏览器实例可以并发执行。模式上下文将确保最大数量的隐身页面可以同时执行。您还可以配置允许的最大并发数,默认值为5,以及呈现请求的最大持续时间,默认为30.秒。

使用隐身页面集群比使用浏览器集群性能更好,消耗的CPU和内存更少。然而,如果一个页面崩溃了,它会导致整个浏览器崩溃(使所有同时发生的呈现请求失败)。此外,不能保证每个页面都是完全干净的(cookie和存储可能会泄漏在这里).

RENDERING_MODE=集群RENDERING_CLUSTERING_MODE=浏览器rendering_clustering_max_并发=5 RENDERING_CLUSTERING_TIMEOUT=30
{"rendering": {"mode": "clustered", "clustering": {"mode": "browser", "maxConcurrency": 5, "timeout": 30}}}}
集群模式contextPerRenderKey(实验)

注意:此特性在Image Renderer v3.4.0及更高版本中可用。

contextPerRenderKey模式下,插件将重复使用浏览器环境对于所有共享相同的渲染请求renderKey在短时间内验证cookie和目标域。每个新请求都将在现有上下文中打开一个新页面。上下文在不活动5秒后自动关闭。

在这种情况下contextPerRenderKey模式下,clustering.max_concurrency选项指的是打开上下文的数量,而不是打开页面的数量。没有办法限制上下文中打开的页面的数量。

contextPerRenderKey是为了提高仪表板预览爬虫

{"rendering": {"mode": "clustered", "clustering": {"mode": "contextPerRenderKey", "maxConcurrency": 5, "timeout": 30}}}}

可重用(实验)

使用渲染模式时可重用的,将创建并重用一个浏览器实例。每个请求都将打开一个新的匿名页面。这种模式是实验性的,因为如果浏览器实例崩溃,它不会自动重新启动。您可以使用集群高的模式maxConcurrency设置。

RENDERING_MODE =可重用
{"渲染":{"模式":"可重用"}}

优化图像渲染器的性能、CPU和内存使用

不同模式的性能和资源消耗在很大程度上取决于服务正在处理的并发请求的数量。要了解您的服务正在处理多少并发请求,监视图像渲染器服务

在没有并发请求的情况下,不同的模式显示出非常相似的性能和CPU /内存使用情况。

在处理并发请求时,我们看到了以下趋势:

  • 为了提高性能,降低CPU和内存消耗,请使用集群模式RENDERING_CLUSTERING_MODE设置为上下文.这将并行隐身页面而不是浏览器。
  • 如果你使用集群的模式maxConcurrency设置低于平均并发请求数,性能会下降,因为呈现请求需要等待其他请求完成才能访问隐身页面/浏览器。

要获得更好的性能,请监视正在运行服务的机器。如果没有足够的内存和/或CPU,每个呈现步骤都会比平时慢,增加每个呈现请求的持续时间。

其他可用设置

注意:请注意,并非所有设置都可以使用环境变量。如果下面没有使用环境变量的示例,则意味着您需要更新配置文件。

HTTP主机

修改HTTP服务器监听主机。默认是未设置的,将使用本地主机。

HTTP_HOST = localhost
{"service": {"host": "localhost"}}

HTTP端口

使用实例修改HTTP服务器的监听端口。默认是8081.设置0将自动分配一个未使用的端口。

HTTP_PORT = 0
{"service": {"port": 0}}

启用普罗米修斯度量

您可以启用普罗米修斯度量端点/指标使用环境变量ENABLE_METRICS.Node.js和渲染请求持续时间指标包括在内,参见输出示例获取详细信息。

默认是

ENABLE_METRICS = true
{"service": {"metrics": {"enabled": true, "collectDefaultMetrics": true, "requestDurationBuckets": [1,5,7,9,11,13,15,20,30]}}}

日志级别

修改日志级别。默认是信息并将包含具有level的日志消息错误警告而且信息

LOG_LEVEL =调试
{"服务":{“日志记录”:{“级别”:“调试”,“控制台”:{“json”:假的,“彩色化”:真正}}}}

详细的日志

指示无头浏览器实例在呈现图像时是否捕获和记录详细信息。默认是并且只捕获和记录错误消息。启用时(真正的)调试消息也被捕获和记录。

注意,日志级别需要修改为调试,请参见上面,以获取包含在日志中的详细信息。

RENDERING_VERBOSE_LOGGING = true
{"rendering": {"verboseLogging": true}}

捕获浏览器输出

指示无头浏览器实例是否将其调试和错误消息输出到远程呈现服务的运行过程中。默认是.这对于启用(真正的)进行故障排除。

RENDERING_DUMPIO = true
{"rendering": {"dumpio": true}}

定制的Chrome /铬

如果你已经有了安装在您的系统上,那么您可以使用它而不是预先打包的Chromium版本。

注意:请注意,不建议这样做,因为如果安装的Chrome/Chromium版本与Grafana图像渲染插件

您需要确保Chrome/Chromium可执行文件对Grafana/图像渲染服务进程可用。

CHROME_BIN = " / usr / bin / chromium浏览器”
{"rendering": {"chromeBin": "/usr/bin/chromium-browser"}}

使用其他参数启动浏览器

要传递给无头浏览器实例的附加参数。默认值是————disable-gpu no-sandbox.可以找到Chromium标志的列表在这里Puppeteer默认使用的标志列表可以在这里找到在那里.多个参数用逗号分隔。

RENDERING_ARGS =——no-sandbox disable-setuid-sandbox,——————disable-gpu disable-accelerated-2d-canvas disable-dev-shm-usage——窗口大小= 1280 x758
{"rendering": {"args":["——no-sandbox", "——disable-setuid-sandbox", "——disable-dev-shm-usage", "——disable- acceleration -2d-canvas", "——disable-gpu", "——window-size=1280x758"]}}

忽略HTTPS错误

指示无头浏览器实例在导航过程中是否忽略HTTPS错误。默认HTTPS错误不会被忽略。由于安全风险,不建议忽略HTTPS错误。

IGNORE_HTTPS_ERRORS = true
{"rendering": {"ignoresHttpsErrors": true}}

默认时区

指示无头浏览器实例使用Grafana没有提供的默认时区,例如。当渲染面板图像的警报。看到ICU的metaZones.txt获取支持的时区id列表。回退到TZ如果未设置环境变量。

BROWSER_TZ =欧洲/斯德哥尔摩
{"rendering": {"timezone": "欧洲/斯德哥尔摩"}}

默认的语言

指示无头浏览器实例使用默认语言时,Grafana不提供,例如,当渲染面板图像的警报。请参阅HTTP报头Accept-Language以了解如何格式化此值。

{“渲染”:{“acceptLanguage”:“fr-CH fr; q = 0.9, en; q = 0.8, de; q = 0.7 *; q = 0.5 "}}

视窗的宽度

当渲染请求中没有指定宽度时,默认视口宽度。默认是1000

{"rendering": {"width": 1000}}

窗口的高度

当渲染请求中没有指定高度时,默认视口高度。默认是500

{"rendering": {"height": 500}}

视口最大宽度

限制可以请求的最大视口宽度。默认是3000

{"rendering": {"maxWidth": 1000}}

视口最大高度

限制可以请求的最大视口高度。默认是3000

{"rendering": {"maxHeight": 500}}

设备比例因子

指定渲染图像的默认设备比例因子。2足够显示器分辨率,bob彩票中奖计划4更适合印刷材料。设置更高的值会影响性能和内存。默认是1.这可以在呈现请求中被重写。

{"rendering": {"deviceScaleFactor": 2}}

最大设备比例因子

限制可以请求的最大设备比例因子。默认是4

{"rendering": {"maxDeviceScaleFactor": 4}}

页面缩放级别

下面的命令设置页面缩放级别。默认值为1.值为1.5等于150%变焦。

RENDERING_VIEWPORT_PAGE_ZOOM_LEVEL = 1
{"rendering": {"pageZoomLevel": 1}}