‹ Reports
The Dispatch

OSS Report: grafana/mimir


Grafana Mimir Development Focuses on Performance Enhancements and Stability Improvements Amidst High Community Engagement

Grafana Mimir, developed by Grafana Labs, is an open-source project designed to provide scalable, highly available, and multi-tenant long-term storage for Prometheus metrics. It is engineered to efficiently manage extensive time series data, enhancing monitoring capabilities across multiple instances.

The last 30 days have seen a concerted effort towards performance enhancements and stability improvements within the Grafana Mimir project. Key activities include significant updates to the query engine, dependency management, and bug fixes. The development team has been actively engaged in both feature development and maintenance tasks, with a strong emphasis on improving system performance and scalability.

Recent Activity

Recent issues and pull requests (PRs) reflect a focus on performance optimization, particularly around Kafka integration and query processing efficiency. For instance, PR #9204 introduces Kafka configuration options, while PR #9211 addresses goroutine leaks in Alertmanager. These activities indicate a strategic shift towards optimizing resource utilization and reducing latency in data handling processes.

Development Team Activity

Of Note

  1. Active Dependency Management: Renovate bot's frequent updates ensure the project remains current with external libraries.
  2. Performance Enhancements: Multiple PRs focus on optimizing query processing and Kafka integration.
  3. Bug Fixes: Addressing critical issues like goroutine leaks (#9211) reflects a commitment to stability.
  4. Documentation Updates: PRs such as #9208 emphasize the importance of clear documentation for user adoption.
  5. Community Engagement: High level of contributor activity indicates robust community involvement in ongoing development efforts.

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 6 1 6 2 1
30 Days 38 18 46 19 1
90 Days 108 64 130 46 1
1 Year 374 199 750 147 1
All Time 1845 1300 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
George Krajcsovits 1 9/9/0 7 261 31325
renovate[bot] 4 23/16/4 29 437 13323
Charles Korn 4 24/24/0 39 131 10935
Franco Posa 4 5/2/1 23 35 7082
Marco Pracucci 2 14/13/1 15 85 4403
Vladimir Varankin 4 13/11/0 20 118 4296
Dimitar Dimitrov 7 18/12/3 32 46 3483
chencs 2 9/8/0 15 30 2883
Joshua Hesketh 2 11/9/0 14 100 2292
Mauro Stettler 3 1/0/0 10 22 1632
Peter Štibraný 3 6/4/1 14 53 1279
Jonathan Halterman 1 3/1/1 2 33 1125
Julien Duchesne (julienduchesne) 2 2/0/0 4 9 1089
Vernon Miller 1 1/1/0 3 15 966
Arve Knudsen 2 7/6/0 7 36 936
gotjosh (gotjosh) 2 3/1/0 6 5 922
Ganesh Vernekar 3 3/2/1 4 9 891
zenador 2 1/0/0 9 16 806
Đurica Yuri Nikolić 1 3/3/0 4 14 533
Nick Pillitteri 2 2/1/0 3 14 433
Oleg Zaytsev 1 1/1/0 2 13 408
Santiago (santihernandezc) 2 2/0/0 2 9 311
Jesus Vazquez (jesusvazquez) 1 2/1/0 3 12 308
Jack Baldry (jdbaldry) 1 1/0/0 2 3 240
Yuri Tseretyan 1 0/0/0 1 11 210
Nicholas Kress 1 1/1/0 1 5 163
George Robinson 4 6/3/0 8 10 163
Alexander Weaver 2 3/2/0 7 21 159
AvivGuiser 1 2/1/1 2 37 139
Sephia Laureencia 1 0/0/0 1 9 97
Fayzal Ghantiwala 1 1/1/0 1 8 96
Miguel Ángel Ortuño 1 0/0/0 1 3 91
Grot (@grafanabot) 2 13/13/0 5 11 61
David Grant 1 0/0/0 1 4 19
Taylor C 1 2/2/0 1 1 14
Tito Lins 1 1/1/0 1 3 8
Elias Abacioglu (Raboo) 0 1/0/0 0 0 0
William Travis Holton (heytrav) 0 1/0/0 0 0 0
None (DeadNews) 0 1/0/1 0 0 0
Willem Gillis (Polygens) 0 1/0/0 0 0 0
Bruno FERNANDO (rasta-rocket) 0 1/0/0 0 0 0
Wilfried ROSET (wilfriedroset) 0 1/0/0 0 0 0
None (github-actions[bot]) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The Grafana Mimir project currently has 545 open issues, indicating active development and user engagement. Recent activity shows a mix of enhancements, bugs, and feature requests, with several issues being created or updated in the past few days. Notably, there are discussions around performance improvements, such as optimizing the ingestion process and addressing memory usage concerns.

Several issues highlight recurring themes, including the need for better handling of out-of-order writes, improving error messaging for users, and enhancing the overall stability of components like the ingester and compactor. The presence of multiple issues related to configuration options suggests that users are seeking more flexibility and control over their deployments.

Issue Details

Most Recently Created Issues

  1. Issue #9206: BlockBuilder: Consume at startup only when lagging

    • Priority: Enhancement
    • Status: Open
    • Created: 2 days ago
  2. Issue #9200: Mimir images built with profile-guided optimization

    • Priority: Enhancement
    • Status: Open
    • Created: 2 days ago
  3. Issue #9188: Support Openstack application credentials in helm chart for authenticating to use Swift storage backend

    • Priority: Enhancement
    • Status: Open
    • Created: 3 days ago
  4. Issue #9177: "The endpoint must not prefixed with the bucket name" error when bucket name matches beginning of S3 endpoint

    • Priority: Bug, Good First Issue
    • Status: Open
    • Created: 4 days ago
  5. Issue #9141: Include position information in annotations returned from sharded queries

    • Priority: Enhancement
    • Status: Open
    • Created: 7 days ago

Most Recently Updated Issues

  1. Issue #9177: "The endpoint must not prefixed with the bucket name" error when bucket name matches beginning of S3 endpoint

    • Last Updated: 1 day ago
  2. Issue #9119: Make mimirtool not use color when pointed to non-tty output

    • Last Updated: 9 days ago
  3. Issue #9085: Config is not imported Prometheus/Alertmanager

    • Last Updated: 14 days ago
  4. Issue #9067: Add possibility to add common labels in helm chart

    • Last Updated: 10 days ago
  5. Issue #8990: Bug: downstream replied with Unprocessable Entity

    • Last Updated: 4 days ago

Analysis of Notable Issues

Several issues stand out due to their implications for the project's functionality:

  • The enhancement requests (#9200 and #9188) indicate a focus on performance optimization and flexibility in deployment configurations, which could significantly impact user experience and system efficiency.

  • The bug reported in issue #9177 highlights a critical configuration issue that could lead to significant user frustration if not addressed promptly. This issue's resolution may require careful documentation updates to prevent future occurrences.

  • The ongoing discussions about improving error messages (#5898) suggest that user experience is a priority for the development team, aiming to reduce confusion during operational failures.

Overall, the recent activity reflects a proactive approach to addressing both user-reported issues and internal optimizations, which is essential for maintaining a robust observability tool like Grafana Mimir.

Report On: Fetch pull requests



Overview

The analysis of the pull requests (PRs) for the Grafana Mimir project reveals a total of 115 open PRs, with a significant focus on improving functionality, fixing bugs, and enhancing performance. The recent activity indicates a robust development cycle, with various contributors addressing both immediate issues and long-term enhancements.

Summary of Pull Requests

  1. PR #9217: Cherry pick created timestamp fix - Introduces updates from related PRs to fix timestamp issues in the weekly-r304 branch.

  2. PR #9215: Release 5.3.1 - A Helm release PR that requires another PR (#9216) to be merged first.

  3. PR #9211: Fix goroutine leak in Alertmanager - Addresses a leak issue when applying bad configurations in multi-tenant setups.

  4. PR #9210: Remove legacy TreeQueue implementation - Cleans up old code by removing the TreeQueue and related flags.

  5. PR #9209: Enable querier worker queue priority - Draft PR focusing on enabling priority for query scheduling.

  6. PR #9208: Update ingester downscaling docs - Documentation update to reflect new procedures for downscaling ingesters.

  7. PR #9204: Introduce Kafka flavours - Adds a configuration flag to handle differences in Kafka implementations.

  8. PR #9203: Use fork of franz-go - Switches to a forked version of the Franz Go client for better compatibility with Mimir's requirements.

  9. PR #9199: Blockbuilder consume and build blocks - Continues work on integrating Kafka with TSDB components.

  10. PR #9185: Validate label value - Adds UTF-8 validation for label values in the Distributor component.

  11. PR #9181: Add application credential arguments for OpenStack Swift - Enhances Helm chart to support OpenStack authentication.

  12. PR #9179: Allow ignoring out-of-order exemplars - Introduces a feature flag to manage out-of-order data handling.

  13. PR #9178: Convert start timestamps to Prometheus timestamps - Adjusts how timestamps are handled in OTLP requests.

  14. PR #9177: Update dependencies and fix bugs related to Prometheus integration.

  15. PR #9176: Update prometheus no client golang at grafana/mimir-prometheus - Updates dependencies related to Prometheus client interactions.

  16. PR #9175: Improve logging during migrations for UTF-8 support.

  17. PR #9174: Add feature flag for logging during UTF-8 migration processes.

  18. PR #9173: Improve error handling in Alertmanager configurations.

  19. PR #9172: Backport changes from main branch to r303 regarding consistency checks in queries.

  20. PR #9171: Release Helm chart 5.5.0-weekly for Mimir distributed deployment.

  21. PR #9169: Improve ingestion storage queries in mixin dashboards.

  22. PR #9168 & PR #9167: Minor improvements and documentation updates related to UTF-8 handling and other features.

  23. Older PRs (up to PR #7000) show ongoing efforts to enhance performance, add features, and improve documentation across various components of the Mimir project, including storage management, query handling, and user experience improvements.

Analysis of Pull Requests

The pull requests indicate several key themes and patterns within the ongoing development of Grafana Mimir:

Active Development

The project is experiencing active development with a consistent influx of new features, bug fixes, and performance improvements being proposed by various contributors. This is evident from the large number of open PRs (115), many of which are focused on critical areas such as memory management, query optimization, and integration with external systems like Kafka and OpenTelemetry.

Focus on Performance

Several recent PRs (e.g., PRs #9204, #9203, and others) emphasize performance enhancements, particularly around Kafka integration and query processing efficiency. The introduction of concurrent processing capabilities (as seen in PRs like #8711) suggests a strategic shift towards optimizing resource utilization and reducing latency in data handling processes.

Documentation Improvements

Many PRs also focus on enhancing documentation (e.g., PRs #9208, #9181). This reflects an understanding that clear documentation is crucial for user adoption and effective usage of new features, especially as the project evolves rapidly with new functionalities being added regularly.

Bug Fixes and Stability

A significant number of PRs address bugs or stability issues (e.g., PRs like #9211, which fixes goroutine leaks). This highlights a commitment to maintaining software quality alongside feature development, ensuring that users can rely on stable releases even as new features are introduced.

Community Engagement

The variety of contributors involved in these pull requests indicates a healthy community engagement around the project. Discussions around proposed changes often include feedback from multiple team members, suggesting an inclusive approach to development that values diverse input and collaboration.

Long-standing Issues

Some older PRs remain open or have been marked as drafts for extended periods (e.g., PRs like #8887), indicating potential challenges in finalizing certain features or addressing complex issues that require more extensive testing or validation before they can be merged into the main codebase.

Lack of Merge Activity

While there is substantial activity in terms of new pull requests being created, some older pull requests have not seen recent merge activity or resolution (e.g., several dated back over 60 days). This could indicate resource constraints or prioritization challenges within the team as they navigate numerous ongoing initiatives simultaneously.

Conclusion

Overall, the analysis reveals that Grafana Mimir is undergoing significant enhancements driven by community contributions focused on performance optimization, stability improvements, and comprehensive documentation efforts. However, attention should be given to managing older pull requests effectively to ensure timely resolutions and maintain momentum within the project's development cycle.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Their Recent Activities

  1. renovate[bot]

    • Commits: 29
    • Changes: 13,323 across 437 files.
    • Notable Activities: Regularly updates dependencies, including modules like github.com/shirou/gopsutil/v4 and github.com/thanos-io/objstore.
  2. titolins (Tito Lins)

    • Commits: 1
    • Changes: 8 across 3 files.
    • Notable Activities: Implemented a feature to use Grafana URL for testing receivers.
  3. krajorama (György Krajcsovits)

    • Commits: 7
    • Changes: 31,325 across 261 files.
    • Notable Activities: Significant updates to the mimir-prometheus module, including performance enhancements and bug fixes.
  4. jhesketh (Joshua Hesketh)

    • Commits: 14
    • Changes: 2,292 across 100 files.
    • Notable Activities: Focused on adding support for various aggregation functions and optimizations in the query engine.
  5. charleskorn (Charles Korn)

    • Commits: 39
    • Changes: 10,935 across 131 files.
    • Notable Activities: Worked on multiple features related to the Mimir query engine, including histogram support and performance improvements.
  6. chencs (Casie Chen)

    • Commits: 15
    • Changes: 2,883 across 30 files.
    • Notable Activities: Contributed to the scheduler's queue management and improved code structure for better maintainability.
  7. alexweav (Alexander Weaver)

    • Commits: 7
    • Changes: 159 across 21 files.
    • Notable Activities: Focused on fixing goroutine leaks in Alertmanager.
  8. grobinson-grafana (George Robinson)

    • Commits: 8
    • Changes: 163 across 10 files.
    • Notable Activities: Updated configurations related to UTF-8 strict mode logging.
  9. KyriosGN0 (Aviv Guiser)

    • Commits: 2
    • Changes: 139 across 37 files.
    • Notable Activities: Worked on Helm chart updates and fixes.
  10. narqo (Vladimir Varankin)

    • Commits: 20
    • Changes: 4,296 across 118 files.
    • Notable Activities: Focused on blockbuilder enhancements and Kafka integration improvements.
  11. dimitarvdimitrov (Dimitar Dimitrov)

    • Commits: 32
    • Changes: 3,483 across 46 files.
    • Notable Activities: Engaged in improving ingestion processes and fixing race conditions in tests.
  12. seizethedave (David Grant)

    • Commits: 1
    • Changes: 19 across 4 files.
    • Notable Activities: Minor contributions related to configuration updates.
  13. francoposa (Franco Posa)

    • Commits: 23
    • Changes: 7,082 across 35 files.
    • Notable Activities: Implemented priority algorithms in the scheduler and contributed to load testing scripts.
  14. pracucci (Marco Pracucci)

    • Commits: 15
    • Changes: 4,403 across 85 files.
    • Notable Activities: Worked on various enhancements related to blockbuilding and ingestion processes.
  15. Additional contributors include:

    • pstibrany, aldernero, colega, 56quarters, kressnick25, jhalterman, tacole02, codesome, fayzal-g, yuri-tceretian, replay, zenador, etc., each contributing with varying degrees of commits and changes primarily focused on bug fixes, enhancements, and documentation improvements.

Patterns and Themes

  • The development team is actively engaged in both feature development and maintenance tasks, with a significant focus on improving performance and scalability of the system.
  • A recurring theme is the enhancement of the query engine capabilities, particularly around aggregation functions and histogram support.
  • There is a strong emphasis on dependency management through regular updates by the renovate bot, ensuring that the project remains up-to-date with external libraries.
  • Collaboration among team members is evident through co-authored commits, particularly in addressing complex issues like goroutine leaks or performance optimizations.

Conclusions

The recent activities indicate a highly collaborative environment with a clear focus on enhancing Grafana Mimir's capabilities while maintaining robust performance standards. The team's diverse contributions reflect a commitment to quality and continuous improvement within the project.