Mimir

grafana/skills/skills/grafana-lgtm/mimir

作者 grafana1ccacf29049fApache-2.0279 个星标收录于 2026年10月8日更新于 2026年10月8日仓库今天更新

Stand up Grafana Mimir for horizontally scalable, multi-tenant, long-term Prometheus + OTLP metrics storage. Covers monolithic / read-write / microservices deployment, S3 / GCS / Azure / filesystem block storage, Prometheus `remote_write` and OTLP ingestion, multi-tenancy with `X-Scope-OrgID`, ingester replication factor, compactor retention, and per-tenant limits. Use when running Mimir locally or on Kubernetes (Helm `mimir-distributed`), scaling Prometheus past a single node, picking ingest / query / backend split, configuring tenants and ingestion rate, debugging `/ready` 503s or `429 Too Many Requests`, or pointing Grafana at a Mimir datasource — even when the user says "I need long-term Prometheus storage", "scale Prometheus", "multi-tenant metrics backend", "Cortex replacement", "remote_write target", or "store 10M active series" without naming Mimir.

仅含说明DevOps & Cloud
AI 生成的概览

指导搭建和运维 Grafana Mimir,用于可扩展、多租户、长期的 Prometheus 与 OTLP 指标存储。

功能
该技能提供部署 Grafana Mimir 的配置与命令指导,涵盖单体、读写分离和微服务模式,包括本地 Docker 运行和 Kubernetes Helm 安装。内容涉及块存储后端、Prometheus remote_write 与 Grafana Alloy 数据写入、通过 X-Scope-OrgID 请求头实现多租户、副本因子、压缩器保留策略以及按租户限制。还包含验证步骤,以及就绪检查失败、限流和查询结果为空等问题的排查方法。
适用场景
适用于将 Prometheus 扩展到单节点之外、搭建多租户长期指标后端或替换 Cortex 的场景。也适合排查 Mimir 就绪状态或数据写入错误,以及将 Grafana 连接到 Mimir 数据源时使用。
运行要求
需要 Docker 或带 Helm 的 Kubernetes 集群进行部署,生产环境需要对象存储桶(S3、GCS 或 Azure),以及能够 remote_write 的 Prometheus 或 Alloy 实例。该技能不包含脚本,仅为说明文档,另附两份参考文档。

Grafana Mimir

Docs: https://grafana.com/docs/mimir/latest/

Horizontally scalable, multi-tenant, long-term storage for Prometheus + OpenTelemetry metrics.

Prerequisites

  • Docker (for quick start) or a Kubernetes cluster (for Helm)
  • An object-storage bucket for production (S3/GCS/Azure) — filesystem only for dev
  • Prometheus or Alloy able to remote_write to the Mimir push endpoint

Common Workflows

1. Stand up monolithic Mimir locally

yaml
# demo.yamltarget: allmultitenancy_enabled: false
blocks_storage:  backend: filesystem  bucket_store:    sync_dir: /tmp/mimir/tsdb-sync  filesystem:    dir: /tmp/mimir/data/tsdb  tsdb:    dir: /tmp/mimir/tsdb
compactor:  data_dir: /tmp/mimir/compactor  sharding_ring:    kvstore: { store: memberlist }
distributor:  ring:    instance_addr: 127.0.0.1    kvstore: { store: memberlist }
ingester:  ring:    instance_addr: 127.0.0.1    kvstore: { store: memberlist }    replication_factor: 1
server:  http_listen_port: 9009  grpc_listen_port: 9095  log_level: error
bash
# 1. Run itdocker run --rm -p 9009:9009 -v $(pwd)/demo.yaml:/etc/mimir/demo.yaml \  grafana/mimir:latest --config.file=/etc/mimir/demo.yaml
# 2. Verify readiness (expect HTTP 200, body: "ready")curl -sf http://localhost:9009/ready
# 3. Verify it's serving the APIcurl -s http://localhost:9009/api/v1/labels | jq '.status'   # → "success"
# 4. Verify self-metrics scrapecurl -s http://localhost:9009/metrics | grep -E '^mimir_(distributor|ingester)_' | head

2. Send metrics — Prometheus remote_write

yaml
remote_write:  - url: http://localhost:9009/api/v1/push    headers:      X-Scope-OrgID: tenant1   # required when multitenancy_enabled: true
bash
# Verify samples are landingcurl -s -H 'X-Scope-OrgID: tenant1' \  'http://localhost:9009/api/v1/query?query=up' | jq '.data.result | length'# Expect > 0 within ~30s of Prometheus scraping

3. Send metrics — Grafana Alloy

alloy
prometheus.remote_write "mimir" {  endpoint {    url = "http://mimir:9009/api/v1/push"    headers = { "X-Scope-OrgID" = "tenant1" }  }}

4. Deploy on Kubernetes (Helm, microservices)

bash
# 1. Installhelm repo add grafana https://grafana.github.io/helm-chartshelm install mimir grafana/mimir-distributed --version 6.0.6 -f values.yaml
# 2. Verify every pod is Running / Readykubectl get pods -n mimir#   distributor, ingester, querier, query-frontend, store-gateway, compactor, ruler
# 3. Verify the gateway is readykubectl port-forward -n mimir svc/mimir-nginx 9009:80 &curl -sf http://localhost:9009/ready

Multi-tenancy

yaml
multitenancy_enabled: true# Every request must include header:  X-Scope-OrgID: <tenant-id>

For storage backends (S3 / GCS / Azure / filesystem) see references/storage.md [blocked]. For component roles, ring options, limits, and API endpoint dumps see references/architecture.md [blocked].

Troubleshooting

  • /ready returns 503 → ingester still joining ring; check mimir_ring_members and ingester logs
  • 429 Too Many Requests on push → bump limits.ingestion_rate / ingestion_burst_size
  • Samples written but query returns empty → confirm X-Scope-OrgID matches between write and read
  • Query for old data returns nothing → check compactor logs and that store-gateway has synced blocks

Resources

来源与署名

来源:grafana/skills位于skills/grafana-lgtm/mimir提交1ccacf2

许可证: Apache-2.0

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架

更多来自 grafana/skills 的技能

React 19 Plugin Migration

grafana

指导将 Grafana 插件迁移至 React 19 兼容,按顺序完成构建、依赖与源码修改步骤。

Software Development279今天更新

Plugin Bundle Size

grafana

指导使用 React.lazy、Suspense 和 webpack 代码分割来优化 Grafana 应用插件包体积。

Software Development279今天更新

Grafana Scenes

grafana

使用 @grafana/scenes 框架构建 Grafana 插件页面,涵盖场景、面板、变量与下钻导航。

Software Development279今天更新

Check Npm

grafana

对 JS/TS 仓库的 npm、yarn 或 pnpm 配置进行只读供应链加固审计。

Security279今天更新

K6 Trend Analysis

grafana

Analyze Grafana Cloud k6 test run trends over time. Detects slow metric drift (e.g., P95 latency creeping up while still passing thresholds), computes headroom to thresholds, flags anomalies, and recommends threshold tightening. Use when the user asks about test performance trends, wants to know if metrics are degrading, asks whether thresholds should be tightened, or wants a health check across recent runs for a specific test. Trigger on phrases like "how is my test trending", "is P95 getting worse", "check for performance regression", "should I tighten thresholds", "are my tests degrading", "show me trends for test X", "analyze my k6 test runs", or "is my test getting slower". Also trigger when a user asks to check all tests in a project -- run this skill once per test and synthesize.

待分类279今天更新

K6 Test Maintenance

grafana

维护和改进现有 k6 负载测试脚本:收紧阈值、版本迁移、重构以及最佳实践审计。

Software Development279今天更新