Skip to content

[Discuss] Re-evaluate the argument for custom Chromium build #92313

Closed
@tsullivan

Description

This issue is to list the pros and cons of having a custom build of Chromium shipped with Kibana to support PDF/PNG reporting.

Background

PhantomJS was the original headless browser used by Kibana to support screenshot reports since Kibana 5.0. That had its share of issues that were hard to reproduce and diagnose. Eventually, the Chromium project released headless support for its browser and Kibana switched to using it as our Reporting browser. As a reaction to Chromium supporting headless, the PhantomJS project deprecated itself. Using Chromium goes back to 6.3, and for the first 2 minors, chrome-remote-interface drove the integration. In 6.5, we switched to Puppeteer.

In first switching away from Phantom, we had the option to use a "stock" Chromium installation from the node module. Instead, we chose the alternative which is to supply our own Chromium installation. The Kibana team created build scripts that compile Chromium from source, using our own arguments files.

There is one main reason why we chose to ship a custom binary rather than use the default Chromium: in Linux, the default Chromium requires x11 which is not normally installed on a Linux server, and has a huge impact on how a server is provisioned in a self-deploy setup. (Note: even with the custom binary, Kibana Reporting imposes a few system requirements for the Linux server, such as fontconfig and nss )

Reasons to re-evaluate

Kibana Reporting has worked the way it has since version 6.3. Versions 6.3 and 6.4 used chrome-remote-interface rather than Puppeteer, but the custom build process. was the same. Looking at the question now, there are unanswered questions:

  1. Why is the size of the custom binary shipped with the Kibana distro larger than Linux's default binary for Chromium?
  2. How would using the Puppeteer defaults affect the size of the Kibana Docker image?
  3. How would using Puppeteer defaults affect general stability of Kibana Reporting?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    (Deprecated) Feature:ReportingUse Reporting:Screenshot, Reporting:CSV, or Reporting:Framework insteadTeam:OperationsTeam label for Operations Teamdiscussimpact:lowAddressing this issue will have a low level of impact on the quality/strength of our product.loe:mediumMedium Level of Effort

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions