<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Image rendering on Grafana Labs</title><link>https://grafana.com/docs/grafana/v8.4/image-rendering/</link><description>Recent content in Image rendering on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v8.4/image-rendering/index.xml" rel="self" type="application/rss+xml"/><item><title>Monitoring the image renderer</title><link>https://grafana.com/docs/grafana/v8.4/image-rendering/monitoring/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/image-rendering/monitoring/</guid><content><![CDATA[&lt;h1 id=&#34;monitoring-the-image-renderer&#34;&gt;Monitoring the image renderer&lt;/h1&gt;
&lt;p&gt;Rendering images requires a lot of memory, mainly because Grafana creates browser instances in the background for the actual rendering. Monitoring your service can help you allocate the right amount of resources to your rendering service and set the right &lt;a href=&#34;./#rendering-mode&#34;&gt;rendering mode&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;enable-prometheus-metrics-endpoint&#34;&gt;Enable Prometheus metrics endpoint&lt;/h2&gt;
&lt;p&gt;Configure this service to expose a Prometheus metrics endpoint. For information on how to configure and monitor this service using Prometheus as a data source, refer to &lt;a href=&#34;/grafana/dashboards/12203&#34;&gt;Grafana Image Rendering Service dashboard&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Metrics endpoint output example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;# HELP process_cpu_user_seconds_total Total user CPU time spent in seconds.
# TYPE process_cpu_user_seconds_total counter
process_cpu_user_seconds_total 0.536 1579444523566

# HELP process_cpu_system_seconds_total Total system CPU time spent in seconds.
# TYPE process_cpu_system_seconds_total counter
process_cpu_system_seconds_total 0.064 1579444523566

# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 0.6000000000000001 1579444523566

# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1579444433

# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 52686848 1579444523568

# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 2055344128 1579444523568

# HELP process_heap_bytes Process heap size in bytes.
# TYPE process_heap_bytes gauge
process_heap_bytes 1996390400 1579444523568

# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 31 1579444523567

# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1573877

# HELP nodejs_eventloop_lag_seconds Lag of event loop in seconds.
# TYPE nodejs_eventloop_lag_seconds gauge
nodejs_eventloop_lag_seconds 0.000915922 1579444523567

# HELP nodejs_active_handles Number of active libuv handles grouped by handle type. Every handle type is C&amp;#43;&amp;#43; class name.
# TYPE nodejs_active_handles gauge
nodejs_active_handles{type=&amp;#34;WriteStream&amp;#34;} 2 1579444523566
nodejs_active_handles{type=&amp;#34;Server&amp;#34;} 1 1579444523566
nodejs_active_handles{type=&amp;#34;Socket&amp;#34;} 9 1579444523566
nodejs_active_handles{type=&amp;#34;ChildProcess&amp;#34;} 2 1579444523566

# HELP nodejs_active_handles_total Total number of active handles.
# TYPE nodejs_active_handles_total gauge
nodejs_active_handles_total 14 1579444523567

# HELP nodejs_active_requests Number of active libuv requests grouped by request type. Every request type is C&amp;#43;&amp;#43; class name.
# TYPE nodejs_active_requests gauge
nodejs_active_requests{type=&amp;#34;FSReqCallback&amp;#34;} 2

# HELP nodejs_active_requests_total Total number of active requests.
# TYPE nodejs_active_requests_total gauge
nodejs_active_requests_total 2 1579444523567

# HELP nodejs_heap_size_total_bytes Process heap size from node.js in bytes.
# TYPE nodejs_heap_size_total_bytes gauge
nodejs_heap_size_total_bytes 13725696 1579444523567

# HELP nodejs_heap_size_used_bytes Process heap size used from node.js in bytes.
# TYPE nodejs_heap_size_used_bytes gauge
nodejs_heap_size_used_bytes 12068008 1579444523567

# HELP nodejs_external_memory_bytes Nodejs external memory size in bytes.
# TYPE nodejs_external_memory_bytes gauge
nodejs_external_memory_bytes 1728962 1579444523567

# HELP nodejs_heap_space_size_total_bytes Process heap space size total from node.js in bytes.
# TYPE nodejs_heap_space_size_total_bytes gauge
nodejs_heap_space_size_total_bytes{space=&amp;#34;read_only&amp;#34;} 262144 1579444523567
nodejs_heap_space_size_total_bytes{space=&amp;#34;new&amp;#34;} 1048576 1579444523567
nodejs_heap_space_size_total_bytes{space=&amp;#34;old&amp;#34;} 9809920 1579444523567
nodejs_heap_space_size_total_bytes{space=&amp;#34;code&amp;#34;} 425984 1579444523567
nodejs_heap_space_size_total_bytes{space=&amp;#34;map&amp;#34;} 1052672 1579444523567
nodejs_heap_space_size_total_bytes{space=&amp;#34;large_object&amp;#34;} 1077248 1579444523567
nodejs_heap_space_size_total_bytes{space=&amp;#34;code_large_object&amp;#34;} 49152 1579444523567
nodejs_heap_space_size_total_bytes{space=&amp;#34;new_large_object&amp;#34;} 0 1579444523567

# HELP nodejs_heap_space_size_used_bytes Process heap space size used from node.js in bytes.
# TYPE nodejs_heap_space_size_used_bytes gauge
nodejs_heap_space_size_used_bytes{space=&amp;#34;read_only&amp;#34;} 32296 1579444523567
nodejs_heap_space_size_used_bytes{space=&amp;#34;new&amp;#34;} 601696 1579444523567
nodejs_heap_space_size_used_bytes{space=&amp;#34;old&amp;#34;} 9376600 1579444523567
nodejs_heap_space_size_used_bytes{space=&amp;#34;code&amp;#34;} 286688 1579444523567
nodejs_heap_space_size_used_bytes{space=&amp;#34;map&amp;#34;} 704320 1579444523567
nodejs_heap_space_size_used_bytes{space=&amp;#34;large_object&amp;#34;} 1064872 1579444523567
nodejs_heap_space_size_used_bytes{space=&amp;#34;code_large_object&amp;#34;} 3552 1579444523567
nodejs_heap_space_size_used_bytes{space=&amp;#34;new_large_object&amp;#34;} 0 1579444523567

# HELP nodejs_heap_space_size_available_bytes Process heap space size available from node.js in bytes.
# TYPE nodejs_heap_space_size_available_bytes gauge
nodejs_heap_space_size_available_bytes{space=&amp;#34;read_only&amp;#34;} 229576 1579444523567
nodejs_heap_space_size_available_bytes{space=&amp;#34;new&amp;#34;} 445792 1579444523567
nodejs_heap_space_size_available_bytes{space=&amp;#34;old&amp;#34;} 417712 1579444523567
nodejs_heap_space_size_available_bytes{space=&amp;#34;code&amp;#34;} 20576 1579444523567
nodejs_heap_space_size_available_bytes{space=&amp;#34;map&amp;#34;} 343632 1579444523567
nodejs_heap_space_size_available_bytes{space=&amp;#34;large_object&amp;#34;} 0 1579444523567
nodejs_heap_space_size_available_bytes{space=&amp;#34;code_large_object&amp;#34;} 0 1579444523567
nodejs_heap_space_size_available_bytes{space=&amp;#34;new_large_object&amp;#34;} 1047488 1579444523567

# HELP nodejs_version_info Node.js version info.
# TYPE nodejs_version_info gauge
nodejs_version_info{version=&amp;#34;v14.16.1&amp;#34;,major=&amp;#34;14&amp;#34;,minor=&amp;#34;16&amp;#34;,patch=&amp;#34;1&amp;#34;} 1

# HELP grafana_image_renderer_service_http_request_duration_seconds duration histogram of http responses labeled with: status_code
# TYPE grafana_image_renderer_service_http_request_duration_seconds histogram
grafana_image_renderer_service_http_request_duration_seconds_bucket{le=&amp;#34;1&amp;#34;,status_code=&amp;#34;200&amp;#34;} 0
grafana_image_renderer_service_http_request_duration_seconds_bucket{le=&amp;#34;5&amp;#34;,status_code=&amp;#34;200&amp;#34;} 4
grafana_image_renderer_service_http_request_duration_seconds_bucket{le=&amp;#34;7&amp;#34;,status_code=&amp;#34;200&amp;#34;} 4
grafana_image_renderer_service_http_request_duration_seconds_bucket{le=&amp;#34;9&amp;#34;,status_code=&amp;#34;200&amp;#34;} 4
grafana_image_renderer_service_http_request_duration_seconds_bucket{le=&amp;#34;11&amp;#34;,status_code=&amp;#34;200&amp;#34;} 4
grafana_image_renderer_service_http_request_duration_seconds_bucket{le=&amp;#34;13&amp;#34;,status_code=&amp;#34;200&amp;#34;} 4
grafana_image_renderer_service_http_request_duration_seconds_bucket{le=&amp;#34;15&amp;#34;,status_code=&amp;#34;200&amp;#34;} 4
grafana_image_renderer_service_http_request_duration_seconds_bucket{le=&amp;#34;20&amp;#34;,status_code=&amp;#34;200&amp;#34;} 4
grafana_image_renderer_service_http_request_duration_seconds_bucket{le=&amp;#34;30&amp;#34;,status_code=&amp;#34;200&amp;#34;} 4
grafana_image_renderer_service_http_request_duration_seconds_bucket{le=&amp;#34;&amp;#43;Inf&amp;#34;,status_code=&amp;#34;200&amp;#34;} 4
grafana_image_renderer_service_http_request_duration_seconds_sum{status_code=&amp;#34;200&amp;#34;} 10.492873834
grafana_image_renderer_service_http_request_duration_seconds_count{status_code=&amp;#34;200&amp;#34;} 4

# HELP up 1 = up, 0 = not up
# TYPE up gauge
up 1

# HELP grafana_image_renderer_http_request_in_flight A gauge of requests currently being served by the image renderer.
# TYPE grafana_image_renderer_http_request_in_flight gauge
grafana_image_renderer_http_request_in_flight 1

# HELP grafana_image_renderer_step_duration_seconds duration histogram of browser steps for rendering an image labeled with: step
# TYPE grafana_image_renderer_step_duration_seconds histogram
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.3&amp;#34;,step=&amp;#34;launch&amp;#34;} 0
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.5&amp;#34;,step=&amp;#34;launch&amp;#34;} 0
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;1&amp;#34;,step=&amp;#34;launch&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;2&amp;#34;,step=&amp;#34;launch&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;3&amp;#34;,step=&amp;#34;launch&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;5&amp;#34;,step=&amp;#34;launch&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;&amp;#43;Inf&amp;#34;,step=&amp;#34;launch&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_sum{step=&amp;#34;launch&amp;#34;} 0.7914972
grafana_image_renderer_step_duration_seconds_count{step=&amp;#34;launch&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.3&amp;#34;,step=&amp;#34;newPage&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.5&amp;#34;,step=&amp;#34;newPage&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;1&amp;#34;,step=&amp;#34;newPage&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;2&amp;#34;,step=&amp;#34;newPage&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;3&amp;#34;,step=&amp;#34;newPage&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;5&amp;#34;,step=&amp;#34;newPage&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;&amp;#43;Inf&amp;#34;,step=&amp;#34;newPage&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_sum{step=&amp;#34;newPage&amp;#34;} 0.2217868
grafana_image_renderer_step_duration_seconds_count{step=&amp;#34;newPage&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.3&amp;#34;,step=&amp;#34;prepare&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.5&amp;#34;,step=&amp;#34;prepare&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;1&amp;#34;,step=&amp;#34;prepare&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;2&amp;#34;,step=&amp;#34;prepare&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;3&amp;#34;,step=&amp;#34;prepare&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;5&amp;#34;,step=&amp;#34;prepare&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;&amp;#43;Inf&amp;#34;,step=&amp;#34;prepare&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_sum{step=&amp;#34;prepare&amp;#34;} 0.0819274
grafana_image_renderer_step_duration_seconds_count{step=&amp;#34;prepare&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.3&amp;#34;,step=&amp;#34;navigate&amp;#34;} 0
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.5&amp;#34;,step=&amp;#34;navigate&amp;#34;} 0
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;1&amp;#34;,step=&amp;#34;navigate&amp;#34;} 0
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;2&amp;#34;,step=&amp;#34;navigate&amp;#34;} 0
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;3&amp;#34;,step=&amp;#34;navigate&amp;#34;} 0
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;5&amp;#34;,step=&amp;#34;navigate&amp;#34;} 0
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;&amp;#43;Inf&amp;#34;,step=&amp;#34;navigate&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_sum{step=&amp;#34;navigate&amp;#34;} 15.3311258
grafana_image_renderer_step_duration_seconds_count{step=&amp;#34;navigate&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.3&amp;#34;,step=&amp;#34;panelsRendered&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.5&amp;#34;,step=&amp;#34;panelsRendered&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;1&amp;#34;,step=&amp;#34;panelsRendered&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;2&amp;#34;,step=&amp;#34;panelsRendered&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;3&amp;#34;,step=&amp;#34;panelsRendered&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;5&amp;#34;,step=&amp;#34;panelsRendered&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;&amp;#43;Inf&amp;#34;,step=&amp;#34;panelsRendered&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_sum{step=&amp;#34;panelsRendered&amp;#34;} 0.0205577
grafana_image_renderer_step_duration_seconds_count{step=&amp;#34;panelsRendered&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.3&amp;#34;,step=&amp;#34;screenshot&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;0.5&amp;#34;,step=&amp;#34;screenshot&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;1&amp;#34;,step=&amp;#34;screenshot&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;2&amp;#34;,step=&amp;#34;screenshot&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;3&amp;#34;,step=&amp;#34;screenshot&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;5&amp;#34;,step=&amp;#34;screenshot&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_bucket{le=&amp;#34;&amp;#43;Inf&amp;#34;,step=&amp;#34;screenshot&amp;#34;} 1
grafana_image_renderer_step_duration_seconds_sum{step=&amp;#34;screenshot&amp;#34;} 0.2866623
grafana_image_renderer_step_duration_seconds_count{step=&amp;#34;screenshot&amp;#34;} 1

# HELP grafana_image_renderer_browser_info A metric with a constant &amp;#39;1 value labeled by version of the browser in use
# TYPE grafana_image_renderer_browser_info gauge
grafana_image_renderer_browser_info{version=&amp;#34;HeadlessChrome/79.0.3945.0&amp;#34;} 1&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="monitoring-the-image-renderer">Monitoring the image renderer&lt;/h1>
&lt;p>Rendering images requires a lot of memory, mainly because Grafana creates browser instances in the background for the actual rendering. Monitoring your service can help you allocate the right amount of resources to your rendering service and set the right &lt;a href="./#rendering-mode">rendering mode&lt;/a>.&lt;/p></description></item><item><title>Troubleshooting</title><link>https://grafana.com/docs/grafana/v8.4/image-rendering/troubleshooting/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/image-rendering/troubleshooting/</guid><content><![CDATA[&lt;h1 id=&#34;troubleshoot-image-rendering&#34;&gt;Troubleshoot image rendering&lt;/h1&gt;
&lt;p&gt;In this section, you&amp;rsquo;ll learn how to enable logging for the image renderer and you&amp;rsquo;ll find the most common issues.&lt;/p&gt;
&lt;h2 id=&#34;enable-debug-logging&#34;&gt;Enable debug logging&lt;/h2&gt;
&lt;p&gt;To troubleshoot the image renderer, different kind of logs are available.&lt;/p&gt;
&lt;p&gt;You can enable debug log messages for rendering in the Grafana configuration file and inspect the Grafana server logs.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;[log]
filters = rendering:debug&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can also enable more logs in image renderer service itself by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Increasing the &lt;a href=&#34;./#log-level&#34;&gt;log level&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Enabling &lt;a href=&#34;./#verbose-logging&#34;&gt;verbose logging&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;./#capture-browser-output&#34;&gt;Capturing headless browser output&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;missing-libraries&#34;&gt;Missing libraries&lt;/h2&gt;
&lt;p&gt;The plugin and rendering service uses &lt;a href=&#34;https://www.chromium.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Chromium browser&lt;/a&gt; which depends on certain libraries.
If you don&amp;rsquo;t have all of those libraries installed in your system you may encounter errors when trying to render an image, e.g.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;Rendering failed: Error: Failed to launch chrome!/var/lib/grafana/plugins/grafana-image-renderer/chrome-linux/chrome:
error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory\n\n\nTROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In general you can use the &lt;a href=&#34;https://en.wikipedia.org/wiki/Ldd_%28Unix%29&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;ldd&lt;/code&gt;&lt;/a&gt; utility to figure out what shared libraries
are not installed in your system:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;cd &amp;lt;grafana-image-render plugin directory&amp;gt;
ldd chrome-linux/chrome
      linux-vdso.so.1 (0x00007fff1bf65000)
      libdl.so.2 =&amp;gt; /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2047945000)
      libpthread.so.0 =&amp;gt; /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2047924000)
      librt.so.1 =&amp;gt; /lib/x86_64-linux-gnu/librt.so.1 (0x00007f204791a000)
      libX11.so.6 =&amp;gt; not found
      libX11-xcb.so.1 =&amp;gt; not found
      libxcb.so.1 =&amp;gt; not found
      libXcomposite.so.1 =&amp;gt; not found
        ...&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Ubuntu:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On Ubuntu 18.10 the following dependencies are required for the image rendering to function.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;libx11-6 libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrender1 libxtst6 libglib2.0-0 libnss3 libcups2  libdbus-1-3 libxss1 libxrandr2 libgtk-3-0 libasound2 libxcb-dri3-0 libgbm1 libxshmfence1&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Debian:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On Debian 9 (Stretch) the following dependencies are required for the image rendering to function.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;libx11 libcairo libcairo2 libxtst6 libxcomposite1 libx11-xcb1 libxcursor1 libxdamage1 libnss3 libcups libcups2 libxss libxss1 libxrandr2 libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 libgtk-3-0 libgbm1 libxshmfence1&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;On Debian 10 (Buster) the following dependencies are required for the image rendering to function.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;libxdamage1 libxext6 libxi6 libxtst6 libnss3 libcups2 libxss1 libxrandr2 libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 libpango-1.0-0 libcairo2 libatspi2.0-0 libgtk3.0-cil libgdk3.0-cil libx11-xcb-dev libgbm1 libxshmfence1&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Centos:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On a minimal CentOS 7 installation, the following dependencies are required for the image rendering to function:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;libXcomposite libXdamage libXtst cups libXScrnSaver pango atk adwaita-cursor-theme adwaita-icon-theme at at-spi2-atk at-spi2-core cairo-gobject colord-libs dconf desktop-file-utils ed emacs-filesystem gdk-pixbuf2 glib-networking gnutls gsettings-desktop-schemas gtk-update-icon-cache gtk3 hicolor-icon-theme jasper-libs json-glib libappindicator-gtk3 libdbusmenu libdbusmenu-gtk3 libepoxy liberation-fonts liberation-narrow-fonts liberation-sans-fonts liberation-serif-fonts libgusb libindicator-gtk3 libmodman libproxy libsoup libwayland-cursor libwayland-egl libxkbcommon m4 mailx nettle patch psmisc redhat-lsb-core redhat-lsb-submod-security rest spax time trousers xdg-utils xkeyboard-config alsa-lib&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;On a minimal CentOS 8 installation, the following dependencies are required for the image rendering to function:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;libXcomposite libXdamage libXtst cups libXScrnSaver pango atk adwaita-cursor-theme adwaita-icon-theme at at-spi2-atk at-spi2-core cairo-gobject colord-libs dconf desktop-file-utils ed emacs-filesystem gdk-pixbuf2 glib-networking gnutls gsettings-desktop-schemas gtk-update-icon-cache gtk3 hicolor-icon-theme jasper-libs json-glib libappindicator-gtk3 libdbusmenu libdbusmenu-gtk3 libepoxy liberation-fonts liberation-narrow-fonts liberation-sans-fonts liberation-serif-fonts libgusb libindicator-gtk3 libmodman libproxy libsoup libwayland-cursor libwayland-egl libxkbcommon m4 mailx nettle patch psmisc redhat-lsb-core redhat-lsb-submod-security rest spax time trousers xdg-utils xkeyboard-config alsa-lib libX11-xcb&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;certificate-signed-by-internal-certificate-authorities&#34;&gt;Certificate signed by internal certificate authorities&lt;/h2&gt;
&lt;p&gt;In many cases, Grafana runs on internal servers and uses certificates that have not been signed by a CA (&lt;a href=&#34;https://en.wikipedia.org/wiki/Certificate_authority&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Certificate Authority&lt;/a&gt;) known to Chrome, and therefore cannot be validated. Chrome internally uses NSS (&lt;a href=&#34;https://en.wikipedia.org/wiki/Network_Security_Services&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Network Security Services&lt;/a&gt;) for cryptographic operations such as the validation of certificates.&lt;/p&gt;
&lt;p&gt;If you are using the Grafana Image Renderer with a Grafana server that uses a certificate signed by such a custom CA (for example a company-internal CA), rendering images will fail and you will see messages like this in the Grafana log:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;t=2019-12-04T12:39:22&amp;#43;0000 lvl=error msg=&amp;#34;Render request failed&amp;#34; logger=rendering error=map[] url=&amp;#34;https://192.168.106.101:3443/d-solo/zxDJxNaZk/graphite-metrics?orgId=1&amp;amp;refresh=1m&amp;amp;from=1575438321300&amp;amp;to=1575459921300&amp;amp;var-Host=master1&amp;amp;panelId=4&amp;amp;width=1000&amp;amp;height=500&amp;amp;tz=Europe%2FBerlin&amp;amp;render=1&amp;#34; timestamp=0001-01-01T00:00:00.000Z
t=2019-12-04T12:39:22&amp;#43;0000 lvl=error msg=&amp;#34;Rendering failed.&amp;#34; logger=context userId=1 orgId=1 uname=admin error=&amp;#34;Rendering failed: Error: net::ERR_CERT_AUTHORITY_INVALID at https://192.168.106.101:3443/d-solo/zxDJxNaZk/graphite-metrics?orgId=1&amp;amp;refresh=1m&amp;amp;from=1575438321300&amp;amp;to=1575459921300&amp;amp;var-Host=master1&amp;amp;panelId=4&amp;amp;width=1000&amp;amp;height=500&amp;amp;tz=Europe%2FBerlin&amp;amp;render=1&amp;#34;
t=2019-12-04T12:39:22&amp;#43;0000 lvl=error msg=&amp;#34;Request Completed&amp;#34; logger=context userId=1 orgId=1 uname=admin method=GET path=/render/d-solo/zxDJxNaZk/graphite-metrics status=500 remote_addr=192.168.106.101 time_ms=310 size=1722 referer=&amp;#34;https://grafana.xxx-xxx/d/zxDJxNaZk/graphite-metrics?orgId=1&amp;amp;refresh=1m&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If this happens, then you have to add the certificate to the trust store. If you have the certificate file for the internal root CA in the file &lt;code&gt;internal-root-ca.crt.pem&lt;/code&gt;, then use these commands to create a user specific NSS trust store for the Grafana user (&lt;code&gt;grafana&lt;/code&gt; for the purpose of this example) and execute the following steps:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;[root@server ~]# [ -d /usr/share/grafana/.pki/nssdb ] || mkdir -p /usr/share/grafana/.pki/nssdb
[root@merver ~]# certutil -d sql:/usr/share/grafana/.pki/nssdb -A -n internal-root-ca -t C -i /etc/pki/tls/certs/internal-root-ca.crt.pem
[root@server ~]# chown -R grafana: /usr/share/grafana/.pki/nssdb&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;certutil –addstore &amp;#34;Root&amp;#34; &amp;lt;path&amp;gt;/internal-root-ca.crt.pem&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;custom-chromechromium&#34;&gt;Custom Chrome/Chromium&lt;/h2&gt;
&lt;p&gt;As a last resort, if you already have &lt;a href=&#34;https://www.google.com/chrome/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Chrome&lt;/a&gt; or &lt;a href=&#34;https://www.chromium.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Chromium&lt;/a&gt;
installed on your system, then you can configure the &lt;a href=&#34;../#custom-chromechromium&#34;&gt;Grafana Image renderer plugin&lt;/a&gt; to use this
instead of the pre-packaged version of Chromium.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Please note that this is not recommended, since you may encounter problems if the installed version of Chrome/Chromium is not
compatible with the &lt;a href=&#34;/grafana/plugins/grafana-image-renderer&#34;&gt;Grafana Image renderer plugin&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;To override the path to the Chrome/Chromium executable in plugin mode, set an environment variable and make sure that it&amp;rsquo;s available for the Grafana process. For example:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;export GF_PLUGIN_RENDERING_CHROME_BIN=&amp;#34;/usr/bin/chromium-browser&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In remote rendering mode, you need to set the environment variable or update the configuration file and make sure that it&amp;rsquo;s available for the image rendering service process:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;CHROME_BIN=&amp;#34;/usr/bin/chromium-browser&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;rendering&amp;#34;: {
    &amp;#34;chromeBin&amp;#34;: &amp;#34;/usr/bin/chromium-browser&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="troubleshoot-image-rendering">Troubleshoot image rendering&lt;/h1>
&lt;p>In this section, you&amp;rsquo;ll learn how to enable logging for the image renderer and you&amp;rsquo;ll find the most common issues.&lt;/p>
&lt;h2 id="enable-debug-logging">Enable debug logging&lt;/h2>
&lt;p>To troubleshoot the image renderer, different kind of logs are available.&lt;/p></description></item></channel></rss>