Skip to content

Conversation

@kusumachalasani
Copy link
Contributor

@kusumachalasani kusumachalasani commented Feb 10, 2026

Description

Update the layer configs. This PR fixes

  • memoryRequest tunable bounds format
  • rename openj9 to semeru

Fixes # (issue)

Type of change

  • Bug fix
  • New feature
  • Docs update
  • Breaking change (What changes might users need to make in their application due to this PR?)
  • Requires DB changes

Summary by Sourcery

Update container layer configuration and add a new Semeru JVM layer definition.

New Features:

  • Introduce a Semeru JVM layer configuration with heap presence detection queries and GC tuning options.

Bug Fixes:

  • Correct memoryRequest tunable bounds format by removing unit suffixes from upper and lower bounds.

Signed-off-by: kusuma chalasani <kchalasa@redhat.com>
Signed-off-by: kusuma chalasani <kchalasa@redhat.com>
@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Feb 10, 2026

Reviewer's Guide

Updates autotune layer configurations by fixing memory request bounds format in the container config and introducing a new Semeru JVM layer (renaming from OpenJ9) with Prometheus-based presence detection and GC-related tunables.

Class diagram for updated KruizeLayer configurations

classDiagram
    class KruizeLayer {
      string apiVersion
      string kind
      string metadata_name
      string layer_name
      int layer_level
      string details
    }

    class LayerPresenceQuery {
      string datasource
      string query
      string key
    }

    class Tunable {
      string name
      string description
      string value_type
      string lower_bound
      string upper_bound
      int step
      string[] choices
    }

    class ContainerLayer {
      string layer_name
      string tunable_memoryRequest_upper_bound
      string tunable_memoryRequest_lower_bound
      int tunable_memoryRequest_step
    }

    class SemeruLayer {
      string layer_name
      string[] heap_memory_queries
      string tunable_GCPolicy_value_type
      string[] tunable_GCPolicy_choices
      string tunable_MaxRAMPercentage_value_type
      string tunable_MaxRAMPercentage_lower_bound
      string tunable_MaxRAMPercentage_upper_bound
      int tunable_MaxRAMPercentage_step
    }

    KruizeLayer "1" *-- "many" LayerPresenceQuery
    KruizeLayer "1" *-- "many" Tunable

    ContainerLayer --|> KruizeLayer
    SemeruLayer --|> KruizeLayer
Loading

File-Level Changes

Change Details Files
Normalize memoryRequest tunable bounds format in the container layer config.
  • Change memoryRequest upper_bound from a MiB-suffixed string to a plain numeric value
  • Change memoryRequest lower_bound from a MiB-suffixed string to a plain numeric value
  • Add an inline comment clarifying that memoryRequest is expressed in MiB
manifests/autotune/layers/container-config.yaml
manifests/autotune/layers/container-config.json
Introduce Semeru JVM layer configuration to replace the previous OpenJ9 layer.
  • Add a new semeru layer definition with layer metadata and description
  • Configure layer presence using multiple Prometheus queries on JVM heap memory metrics with different id patterns
  • Define GCPolicy tunable as categorical with supported Semeru GC policies
  • Define MaxRAMPercentage tunable as an integer with bounds and step for Semeru memory tuning
  • Add placeholder JSON config file for the Semeru actuator config
manifests/autotune/layers/semeru-actuator-config.yaml
manifests/autotune/layers/semeru-actuator-config.json

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • Now that memoryRequest bounds are unitless values, double‑check that all consumers of this layer treat them as MiB and consider standardizing how units are represented for tunables to avoid ambiguity.
  • The semeru layer layer_presence section has several overlapping Prometheus queries for heap (e.g., tenured-.+ and tenured); consider consolidating these with a single, clearer regex to reduce redundancy and simplify maintenance.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Now that `memoryRequest` bounds are unitless values, double‑check that all consumers of this layer treat them as MiB and consider standardizing how units are represented for tunables to avoid ambiguity.
- The `semeru` layer `layer_presence` section has several overlapping Prometheus queries for heap (e.g., `tenured-.+` and `tenured`); consider consolidating these with a single, clearer regex to reduce redundancy and simplify maintenance.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@kusumachalasani kusumachalasani moved this to Under Review in Monitoring Feb 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Under Review

Development

Successfully merging this pull request may close these issues.

1 participant