Community

Project Governance

The Prometheus project follows the Prometheus governance.

Community connections

Prometheus is developed in the open. Here are some of the channels we use to communicate and contribute:

Slack channel

#prometheus on CNCF Slack.

IRC

#prometheus on irc.libera.chat.

User mailing lists

Discourse forum

Web-based discussion forum at discuss.prometheus.io hosted by Discourse.

Calendar for public events

We have a public calendar for events, which you can use to join us.

If you just want to get an overview, simply use our web view in your browser's time zone.

If you're using Google products, there's an automagic link to add it your own Google calendar.

If you're using a different calendar, there's an .ics to add to non-Google calendars.

Social

GitHub

To file bugs and feature requests, use the GitHub issue tracker of the relevant Prometheus repository. For questions and discussions, many repositories offer GitHub discussions. Generally, the other community channels listed here are best suited to get support or discuss overarching topics.

Please do not ask individual project members for support. Use the channels above instead, where the whole community can help you and benefit from the solutions provided. If community support is insufficient for your situation, please refer to the Support & Training page.

Contributing

We welcome community contributions! Please see the CONTRIBUTING.md file in the respective Prometheus repository for instructions on how to submit changes. If you are planning on making more elaborate or potentially controversial changes, please discuss them in the developers IRC channel or on the mailing list before sending a pull request.

We host public weekly meetings focused on Prometheus development and contributions. It's meant for developers and maintainers to meet and get unblocked, pair review, and discuss development aspects of the Prometheus and related official projects (e.g node_exporter, alertmanager). The document linked below contains all the details, including how to register.

Slack channel

#prometheus-dev on CNCF Slack.

IRC

#prometheus-dev on irc.libera.chat.

Matrix

#prometheus-dev:matrix.org.

Development mailing list

prometheus-developers (mirror)

  • for discussions around Prometheus development.

Office Hours

Prometheus Contributor Office Hours

  • public weekly meetings focused on Prometheus development and contributions.

Developer summits

Developer summits are public meetings to discuss more involved development topics. They currently happen monthly as an online meeting. (For details, check out the public events calendar linked in the Community section above.) The Prometheus team curates the agenda based on recent discussions via other channels. To propose a topic, please send a mail to the development mailing list at least 24 hours prior to the summit.

As of 2024, we carry a public rolling meeting notes document. You can find our historic meeting notes below.

Developer Summit's Facilitator

The Facilitator role was created to help the Prometheus team to run the Developer Summits effectively. It's a rotational role (switches for every meeting) and its responsibilities are spread across different phases of the summit:

Before the summit

Before the summit, the Facilitator's main goal is to help the Prometheus team define the agenda and the topics to be discussed while making sure interested parties of the most voted topics will be able to attend the summit. We suggest the following tasks:

  • Two or three days before the meeting, send reminders in our public community channels inviting people to add Agenda Topics, and Prometheus Team members and maintainers to vote on topics they'd like to discuss.
  • One day before the meeting, reach out to "Topic owners" who received the most votes to make sure they'll make it to the summit.

During the summit

During the summit, the Facilitator is here to make sure the meeting runs smoothly, and that consensus is reached when needed. We suggest the following tasks:

  • Start the meeting on time. Use @prometheus.io account for the admin meeting permissions.
  • Start the recording and mention that the Code of Conduct applies.
  • Select topics to be discussed based on votes and who is currently present in the meeting.
  • Take notes or find volunteer for taking notes in the shared document.
  • Strategically step in when the discussion is not moving forward or deviating from the topic.
  • Call for consensus when needed.

After the summit

Once the meeting is over, the last task of the Facilitator is to find a new Facilitator for the next summit by sending an email to the Prometheus Team mailing list.

Mentorship

The Prometheus project occasionally participates in various, periodic mentoring programs:

See the above links for the future program dates, application details and projects.

NOTE: For Prometheus to participate in a mentorship cycle, potential mentors (including at least one Prometheus maintainer), have to propose a "project" to a program cycle, e.g. like in this PR.

Mentors do have limited time, so we have to skip some cycles and programs. There are ways to help us participate more often:

  • If you want to help us mentor, feel free to contact the team on #prometheus-dev Slack channel or email.
  • If you want to propose to convert a certain OSS Prometheus ecosystem initiative to a mentorship project, feel free to comment on the relevant work artifact (e.g. GitHub issue).

For Mentees

You have been selected for the Prometheus mentorship under LFX or GSoc? Congratulations! Here is some information for a quick start!

Onboarding Check List

  • Please see and acknowledge our Code of Conduct. TL;DR: Be nice and friendly, treat others like you would like to be treated.
  • Create an account on the CNCF Slack. Please add any profile photo to make it unique. You can reach any of the mentors there.
  • Send your mentors your Slack account handle, so we can add you to private channels. We tend to have a private one with just you and your main mentors, and a second one with all mentees, ex-mentees and mentors (#thanos-prometheus-mentees).
  • Join the main Prometheus Slack channels #prometheus and #prometheus-dev for future interactions with the community.
  • On the #prometheus-dev Slack channel, write a few sentences about yourself, say hello! 💜
  • You are welcome to join social media, start following others and gather your own followers! Who knows maybe you will get addicted? (: Feel free to post any related content around Prometheus while mentioning @prometheus.io.
  • Ask mentors to set up a weekly 2:1 meeting (highly recommended).
  • Read our general contributing guidelines, as well as the specific ones in the Prometheus repo
  • Read your main GitHub issue carefully and start thinking about it, but don't stress out! It's better to start slowly with a smaller task to get things going. 🚀

Tips and Suggestions

There are certain suggestion you can follow to make the MOST out of your time with us!

  • Blocked on the PR, looking for someone to review your contribution, or have some quick question around failed CI? Prefer public communication channels (#prometheus and #prometheus-dev) instead of DMs or private channels. Prometheus has a large community that can quickly help you with any issues. There are also mentees who might have had similar questions already!
  • Say hello to fellow mentees and ex-mentees. We even created a special channel for that goal, so you can team up and build something bigger together: Relationships, maybe a future project together or just helping each other out! Take an example from Summer 2020. Previous Thanos mentees started Friday fun hangouts and it went pretty awesome! Want to start something similar? Ask fellow ex-mentees for their tips. 🤗
  • Think out of the box. Do you feel like something is really painful in project development, functionality or community? Help us improve things and suggest improvements!
  • Participate in the Project life cycles. We are active in many conferences e.g. KubeCon, PromCon, FOSDEM, GoDays. We participate in the CNCF SIGs, many side initiatives, blog posts and videos. Please help us! You are welcome to boost your social media visibility, start blog posting, or even start talking at conferences. Feel free to ask your mentors for guidance on whatever you are passionate about! We would love to help.
  • You are welcome or even encouraged to contribute to anything you want during your internship. It's common to wait for a review of your PR for some time (it's open source after all!), so it's not uncommon to drive 2 or 3 things at the same time. You don't need to limit contributions to the Prometheus project as well. It's totally ok to contribute to some other project we depend on or have a relationship with. It's also encouraged for a Prometheus mentee to contribute to Prometheus ecosystem projects like other Prometheus repos or even Cortex and Thanos. This is because we are part of a bigger Prometheus Ecosystem Family.
  • Try to be independent and responsible for the feature you want to deliver. The sooner you start to lead your task, the better for you! It's hard in the beginning but try to think about the user experience. Is it hard or easy to make mistake using it? How difficult is it to migrate to this feature? Is there anything we can do to reduce data loss errors?
  • Try to help others by reviewing other contributors', mentees' or mentors' pull requests! It sounds scary, but this is actually the best way to learn about coding practices, patterns, and how to maintain high quality codebase!
  • Try using an iterative process for development. Start with small and simple assumptions, and once you have a working example ready, keep improving and discussing with the mentors. Small changes are easy to review and easy to accept 😄.
  • Try working out a proof of concept, which can be used as a baseline, and can be improved upon. These are real-world projects, so it's not possible to have a deterministic solution every time, and proof of concepts are quick way to determine feasibility.
  • Behave and act like you would be maintainer of the project. Ideally a good maintainer that you would like to have for a project you contribute to. While scary, this is the best way to build trust, take more responsibility, and bring enormous value (e.g. reviewing other ppl's work and unblocking them is often more important than writing code yourself!).
  • Have fun, explore and enjoy learning (even on mistakes)!

At the end of the mentorship, it's not the end! You are welcome to continue contributing, coding and helping others. Who knows, maybe you will be passionate enough to become a maintainer one day!

For Mentors

This section outlines mentorship recommendations for mentors.

Retrospective

On the mid-point and a last meeting of the mentorship it's best to sit down with a mentee and collect actionable learnings for both mentors and a mentee. The experience of both Mentors and Mentees is always different due to differences among us, as well as different tasks and circumstances. We always want to check on our experience, no matter if we met the initial goals or not. If goals were not met, then it's extra important to discuss this in an honest and blameless atmosphere. If the experience was mostly positive we also want to know what worked to reinforce best practices.

The example retrospective process looks as follows:

  • A week before the meeting, remind Mentees about the planned retrospective and what it will look like (e.g. link this guide). This allows everyone to think through the week about things that worked or that didn't.
  • During the meeting, start with the retrospective first. This is the most important part of meeting, don't let other things (e.g. project status) get in the way.
    • Write two sections in the working doc: What we did well, What we could do better.
    • Give everyone 5-7m to write down (e.g. live) items in those two sections. Be specific, blameless and honest. It's not about offending anyone, but looking for improvements for both mentors and mentee work. Be critical to yourself, but also try to balance the good and to improve parts. There is always something we could do better (or much worse!).
    • When everyone has finished, create a new section: Learnings.
    • Go through all elements in the list. Discuss the details. Try to find ideas how to mitigate problems or what to continue doing. Write down those things in the Learning section.
    • At the end, share the learnings to the team on the mailing list.
    • Consider composing all learnings into some form of public content.

Public Speaking or Writing

In order to allow mentees to share the knowledge they learned and allow them to improve public speaking skills, at the end of mentorship cycles, mentors can encourage mentees to create some form of public content in the relevant forums. Some ideas we did in the past:

  • Encourage the mentee to speak (or even co-speak with them!) at the next relevant conference or meetup (e.g. PromCon, KubeCon, local meetup), etc!
  • Encourage the mentee to write a blog post on the Prometheus blog or on their personal blog!
  • A virtual "Mentees Meetup", if we have enough content, is also an option.

Code of Conduct

To make Prometheus a welcoming and harassment-free experience for everyone, we follow the CNCF Code of Conduct.

Prometheus is an independent open-source project and not controlled by any single company. To emphasize this we joined the Cloud Native Computing Foundation in 2016 as the second project after Kubernetes.

CNCF logo CNCF logo

Acknowledgements

Prometheus was started by Matt T. Proud and Julius Volz. The majority of its initial development was sponsored by SoundCloud.

We would also like to acknowledge early contributions by engineers from Docker and Boxever.

The Prometheus logo was contributed by Robin Greenwood.

On this page