Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-11237

Large bulletin messages should be truncated

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Core Framework
    • None

    Description

      Bulletins are kept in memory for 5 minutes and are returned via the REST API whenever a user navigates to a Process Group, etc. Under most conditions, this works well. But if a bulletin is particularly large, this can be problematic.

      Take, for example, EvaluateJsonPath. There are cases in which it logs an error and includes the entire JSON Payload, which can be many MB or more. This is all stored in a bulletin currently. This not only uses massive amounts of heap but causes very poor UI performance.

      Consider a 10-node cluster, in which case each node does this. The Cluster Coordinator must then parse all 10 nodes' worth of bulletins, merge them together, and re-serialize it. Then, this is transferred to the browser, and the browser must then parse the result. This can easily take many seconds, causing a very poor user experience.

      While we can fix the EvaluateJsonPath processor, it makes more sense to simply truncate any large messages on any bulletins, instead of trying to play whack-a-mole with specific log messages.

      Any bulletin over 1,000 characters (or perhaps 4,000 characters?) should be truncated. This will improve resilience and reliability and provide a better user experience.

      Attachments

        Activity

          People

            Unassigned Unassigned
            markap14 Mark Payne
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: