Maia is a multi-tenant OpenStack-service for accessing metrics and alarms collected through Prometheus. It offers a Prometheus-compatible API and supports federation.
At SAP we use it to share tenant-specific metrics from our Converged Cloud platform with our users. For their convenience we included a CLI, so that metrics can be discovered and retrieved from shell scripts.
If you don't use OpenStack, you can still use Maia CLI as a feature-complete shell client for Prometheus.
- Multi-tenant Prometheus API offering isolation and resource restriction
- Supports both project and domain-based authentication from OpenStack
- Global region support for virtual region metric queries using global keystone authentication
- Fetches required service endpoints from Keystone service catalog
- JSON Web Token validation for the OpenStack Elektra UI
- OpenStack Identity v3 authentication and authorization
- Project- and domain-level access control (scoping)
- Compatible to Grafana's Prometheus data source
- Compatible to Prometheus API (read-only)
- Supports secure federation to additional Prometheus instances
- Prometheus expression browser adapted to Maia
- Browse projects and metrics
- Perform ad-hoc PromQL queries
- Graph metrics
- Feature-complete CLI supporting all API operations
- JSON and Go-template-based output for reliable automation
- Works with Prometheus, too (no OpenStack required)
- Global region support via
--globalflag for querying metrics from virtual/global regions
Binary releases for Linux and MacOS can be downloaded from the GitHub releases page.
Requires Go (see go.mod for the minimum version).
make generate # Code generation (must run first)
make # Build binary to build/maia
make install # Install to /usr (or PREFIX=/some/path)
make docker # Build Docker imageMaia can be used via Web-UI or CLI. Enter maia --help to see a list of commands and options.
maia metric-names # List available metrics
maia query 'up' # Run a PromQL query
maia series --selector='job="endpoints"' # List time series
maia query 'up' --global # Query global region metricsPlease refer to the Maia user guide for detailed instructions, including authentication setup, output formatting, Grafana integration, and Prometheus federation.
Deploy Maia as a Kubernetes service using the Maia Helm chart (includes Maia, Prometheus, and Thanos).
The operators guide covers configuration, Keystone integration, global region setup, exporter requirements, and monitoring.
- API integration: The developers guide describes the Maia API, authentication schemes, and how to build exporters.
- Contributing: See the developers guide for pull request guidelines and architecture overview.
- Releasing: See RELEASE.md for the release process.
This project is open to feature requests/suggestions, bug reports etc. via GitHub issues. Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our Contribution Guidelines.
If you find any bug that may be a security problem, please follow our instructions in our security policy on how to report it. Please do not create GitHub issues for security-related doubts or problems.
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its Code of Conduct at all times.
Copyright 2017-2025 SAP SE or an SAP affiliate company and maia contributors. Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.