Thanos Philosophy - thanos-io/thanos

Thanos Philosophy

The philosophy of Thanos and its community is heavily influenced by the UNIX philosophy and the Golang programming language. The main principles are:

  1. Each subcommand should do one thing and do it well: For example, the thanos query subcommand proxies incoming calls to known store API endpoints and merges the results.

  2. Write components that work together: Components should be designed to work seamlessly with each other. For instance, blocks should be stored in native Prometheus format, making it easy to integrate with existing Prometheus systems.

  3. Make it easy to read, write, and run components: Reduce complexity in system design and implementation to make it easier for users to understand and work with the components.

Thanos is an open-source project that values and welcomes new contributors and members of the community. Here are ways to get in touch with the community:

  • Slack: #thanos
  • Issue Tracker: GitHub Issues

Contributions are very welcome! See our CONTRIBUTING.md for more information.

ThanosCon

ThanosCon is a one-off, dedicated, and Thanos-focused event to celebrate, connect and learn about the Thanos project. The event aims to bring together people running Thanos in production or building on top of it, and to provide a platform for them to share their experiences, best practices, and insights.

The first ThanosCon was held in 2023, and the event featured talks from Thanos developers and users, as well as workshops and training sessions. The event was a great success, with attendees from all over the world sharing their experiences and learning from each other.

If you are interested in speaking at ThanosCon, you can submit a proposal via the Call for Proposals (CFP) form. The CFP closes on December 3, 2023, and accepted talks will be announced around January 8th.

Thanos in Production

Thanos is used in production by many organizations, including Reddit, Grafana Labs, and Aiven. These organizations have shared their experiences and best practices for deploying, running, and scaling Thanos in dynamic Prometheus environments.

For example, Reddit uses Thanos to monitor and scale its massive Prometheus environment, handling billions of active series with ease. Grafana Labs uses Thanos to provide a highly available and scalable monitoring solution for its customers, and Aiven uses Thanos to provide a managed Prometheus service for its customers.

Thanos Design

Thanos is designed to be highly available, scalable, and fault-tolerant. The system is built using a distributed architecture, with components that can be deployed and managed independently.

Thanos uses a variety of techniques to ensure high availability and fault tolerance, including data replication, sharding, and automatic failover. The system is also designed to be easy to deploy and manage, with built-in support for Kubernetes and other popular container orchestration platforms.

Thanos is built using the Go programming language, which is known for its simplicity, performance, and reliability. The system is also designed to be extensible, with a modular architecture that makes it easy to add new features and integrations.

Thanos Community

The Thanos community is a welcoming and inclusive community of developers, operators, and users. The community is committed to building a welcoming and inclusive environment, and follows the values defined in the CNCF charter, including the CNCF Code of Conduct.

The Thanos community strives for kindness, giving feedback effectively, and building a welcoming environment. The Thanos developers generally decide by consensus and only resort to conflict resolution by a majority vote if consensus cannot be reached.

Thanos Governance

The Thanos developers and community are expected to follow the values defined in the CNCF charter, including the CNCF Code of Conduct. The Thanos community strives for kindness, giving feedback effectively, and building a welcoming environment. The Thanos developers generally decide by consensus and only resort to conflict resolution by a majority vote if consensus cannot be reached.

ThanosCon Talks

ThanosCon features a variety of talks from Thanos developers, users, and community members. The talks cover a wide range of topics, including:

  • Deploying, running, and scaling Thanos in production
  • Benchmarks, resource usage, and optimizations for Thanos
  • Thanos pitfalls and best practices
  • Interesting Thanos cases, such as cost-control, serverless, multi-region, and auto-scaling setups
  • Innovative integrations with Thanos, such as operators, tailored collectors, proxies, and storages
  • Thanos contributor experience and tips

Thanos Contributing

Thanos is an open-source project, and contributions are very welcome! If you are interested in contributing to Thanos, here are some ways to get started:

  • Join the Thanos community on Slack and introduce yourself
  • Browse the Thanos issue tracker and look for issues labeled “good first issue”
  • Participate in Thanos community events, such as ThanosCon and Thanos meetups
  • Read the Thanos contributing guidelines and follow the code of conduct
  • Submit pull requests and participate in code reviews

Thanos Resources

Here are some resources for learning more about Thanos:

Videos

Online Documentation

Code Documentation