Mimir
grafana/skills
Stand up Grafana Mimir for horizontally scalable, multi-tenant, long-term Prometheus + OTLP metrics storage.
Generate/create Loki configs — ingester, querier, compactor, ruler, S3/GCS/Azure backends.
$ npx skills add akin-ozer/cc-devops-skills --skill loki-config-generator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install akin-ozer/cc-devops-skills loki-config-generator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/devops-skills-plugin/skills/loki-config-generator .claude/skills/loki-config-generator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "loki-config-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/loki-config-generator into .claude/skills/loki-config-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loki-config-generator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/loki-config-generatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add akin-ozer/cc-devops-skills --skill loki-config-generator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install akin-ozer/cc-devops-skills loki-config-generator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/devops-skills-plugin/skills/loki-config-generator .agents/skills/loki-config-generator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "loki-config-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/loki-config-generator into .agents/skills/loki-config-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loki-config-generator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add akin-ozer/cc-devops-skills --skill loki-config-generator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install akin-ozer/cc-devops-skills loki-config-generator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/devops-skills-plugin/skills/loki-config-generator .cursor/skills/loki-config-generator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "loki-config-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/loki-config-generator into .cursor/skills/loki-config-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loki-config-generator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/akin-ozer/cc-devops-skills.git --path devops-skills-plugin/skills/loki-config-generator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add akin-ozer/cc-devops-skills --skill loki-config-generator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install akin-ozer/cc-devops-skills loki-config-generator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/devops-skills-plugin/skills/loki-config-generator .gemini/skills/loki-config-generator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "loki-config-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/loki-config-generator into .gemini/skills/loki-config-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loki-config-generator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install akin-ozer/cc-devops-skills loki-config-generatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add akin-ozer/cc-devops-skills --skill loki-config-generator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/devops-skills-plugin/skills/loki-config-generator .github/skills/loki-config-generator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "loki-config-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/loki-config-generator into .github/skills/loki-config-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loki-config-generator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add akin-ozer/cc-devops-skills --skill loki-config-generator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install akin-ozer/cc-devops-skills loki-config-generator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/devops-skills-plugin/skills/loki-config-generator .opencode/skills/loki-config-generator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "loki-config-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/loki-config-generator into .opencode/skills/loki-config-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loki-config-generator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
loki-config-generatorGenerate/create Loki configs — ingester, querier, compactor, ruler, S3/GCS/Azure backends.
Loki Config Generator is an agent skill from akin-ozer/cc-devops-skills. Generate/create Loki configs — ingester, querier, compactor, ruler, S3/GCS/Azure backends.
Its SKILL.md is about 4.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 20 other files, including scripts and reference files (for example `examples/grafana-alloy-daemonset.yaml`, `examples/kubernetes-helm-values.yaml` and `examples/microservices-s3.yaml`).
It sits in DevOps & Cloud, covering File uploads and storage and Container orchestration. It works with Microsoft Azure, OpenTelemetry, Grafana and Kubernetes. The repository describes itself as: DevOps skills for Claude Code and Codex. The licence is Apache-2.0.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 276af75. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3helmdockerFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
grafana.github.ioAlso links to:
grafana.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Loki Config Generator loads about 4.6k tokens when it runs, and up to ~17k if it reads all its reference files. Until then it costs about 28 tokens; SKILL.md has 998 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from akin-ozer/cc-devops-skills at commit 276af75, republished under its Apache-2.0 licence (© akin-ozer). 998 words, ~4,646 tokens.
.claude/skills/loki-config-generator/SKILL.md (or your agent's skills folder). This skill also uses 17 other files; get the full folder from GitHub.Generate production-ready Grafana Loki server configurations with best practices. Supports monolithic, simple scalable, and microservices deployment modes with S3, GCS, Azure, or filesystem storage.
Current Stable: Loki 3.6.2 (November 2025) Important: Promtail deprecated in 3.4 - use Grafana Alloy instead. See
examples/grafana-alloy.alloyfor the Alloy pipeline andexamples/grafana-alloy-daemonset.yamlfor the Kubernetes deployment.
Invoke when: deploying Loki, creating configs from scratch, migrating to Loki, implementing multi-tenant logging, configuring storage backends, or optimizing existing deployments.
Use scripts/generate_config.py for consistent, validated configurations:
# Simple Scalable with S3 (production)
python3 scripts/generate_config.py \
--mode simple-scalable \
--storage s3 \
--bucket my-loki-bucket \
--region us-east-1 \
--retention-days 30 \
--otlp-enabled \
--output loki-config.yaml
# Monolithic with filesystem (development)
python3 scripts/generate_config.py \
--mode monolithic \
--storage filesystem \
--no-auth-enabled \
--output loki-dev.yaml
# Production with Thanos storage (Loki 3.4+)
python3 scripts/generate_config.py \
--mode simple-scalable \
--storage s3 \
--thanos-storage \
--otlp-enabled \
--time-sharding \
--output loki-thanos.yamlScript Options:
| Option | Description |
|---|---|
--mode | monolithic, simple-scalable, microservices |
--storage | filesystem, s3, gcs, azure |
--auth-enabled / --no-auth-enabled | Explicitly enable/disable auth |
--otlp-enabled | Enable OTLP ingestion configuration |
--thanos-storage | Use Thanos object storage client (3.4+, cloud backends) |
--time-sharding | Enable out-of-order ingestion (simple-scalable) |
--ruler | Enable alerting/recording rules (not monolithic) |
--horizontal-compactor | main/worker mode (simple-scalable, 3.6+) |
--zone-awareness | Enable multi-AZ placement safeguards |
--limits-dry-run | Log limit rejections without enforcing |
Follow the staged workflow below when script generation doesn't meet specific requirements or when learning the configuration structure.
For Kubernetes deployments, generate BOTH formats:
loki-config.yaml) - For ConfigMap or direct usevalues.yaml) - For Helm chart deploymentsSee examples/kubernetes-helm-values.yaml for Helm format.
REQUIRED - Use Context7 MCP for:
OPTIONAL - Skip documentation lookup for:
references/ directoryresolve-library-id: "grafana loki"
get-library-docs: /websites/grafana_loki, topic: [component]Example topics: storage_config, limits_config, otlp, compactor, ruler, bloom
Use when Context7 unavailable: "Grafana Loki 3.6 [component] configuration documentation site:grafana.com"
Deployment Mode:
| Mode | Scale | Use Case |
|---|---|---|
| Monolithic | <100GB/day | Testing, development |
| Simple Scalable | 100GB-1TB/day | Production |
| Microservices | >1TB/day | Large-scale, multi-tenant |
Storage Backend: S3, GCS, Azure Blob, Filesystem, MinIO
Key Questions: Expected log volume? Retention period? Multi-tenancy needed? High availability requirements? Kubernetes deployment?
Ask the user directly if required information is missing.
For all new deployments (Loki 2.9+), use TSDB with v13 schema:
schema_config:
configs:
- from: "2025-01-01" # Use deployment date
store: tsdb
object_store: s3 # s3, gcs, azure, filesystem
schema: v13
index:
prefix: loki_index_
period: 24hKey: Schema cannot change after deployment without migration.
S3:
common:
storage:
s3:
s3: s3://us-east-1/loki-bucket
s3forcepathstyle: falseGCS: gcs: { bucket_name: loki-bucket }
Azure: azure: { container_name: loki-container, account_name: ${AZURE_ACCOUNT_NAME} }
Filesystem: filesystem: { chunks_directory: /loki/chunks, rules_directory: /loki/rules }
Ingester:
ingester:
chunk_encoding: snappy
chunk_idle_period: 30m
max_chunk_age: 2h
chunk_target_size: 1572864 # 1.5MB
lifecycler:
ring:
replication_factor: 3 # 3 for productionQuerier:
querier:
max_concurrent: 4
query_timeout: 1mCompactor:
compactor:
working_directory: /loki/compactor
compaction_interval: 10m
retention_enabled: true
retention_delete_delay: 2hlimits_config:
ingestion_rate_mb: 10
ingestion_burst_size_mb: 20
max_streams_per_user: 10000
max_entries_limit_per_query: 5000
max_query_length: 721h
retention_period: 30d
allow_structured_metadata: true
volume_enabled: trueserver:
http_listen_port: 3100
grpc_listen_port: 9096
log_level: info
auth_enabled: true # false for single-tenantNative OpenTelemetry ingestion - use otlphttp exporter (NOT deprecated lokiexporter):
limits_config:
allow_structured_metadata: true
otlp_config:
resource_attributes:
attributes_config:
- action: index_label # Low-cardinality only!
attributes: [service.name, service.namespace, deployment.environment]
- action: structured_metadata # High-cardinality
attributes: [k8s.pod.name, service.instance.id]Actions: index_label (searchable, low-cardinality), structured_metadata (queryable), drop
⚠️ NEVER use
k8s.pod.nameas index_label - use structured_metadata instead.
OTel Collector:
exporters:
otlphttp:
endpoint: http://loki:3100/otlpchunk_store_config:
chunk_cache_config:
memcached_client:
host: memcached-chunks
timeout: 500ms
query_range:
cache_results: true
results_cache:
cache:
memcached_client:
host: memcached-resultsPattern Ingester (3.0+):
pattern_ingester:
enabled: trueBloom Filters (Experimental, 3.3+): Only for >75TB/month deployments. Works on structured metadata only. See examples/ for config.
Time Sharding (3.4+): For out-of-order ingestion:
limits_config:
shard_streams:
time_sharding_enabled: trueThanos Storage (3.4+): New storage client, opt-in now, default later:
storage_config:
use_thanos_objstore: true
object_store:
s3:
bucket_name: my-bucket
endpoint: s3.us-west-2.amazonaws.comruler:
storage:
type: s3
s3: { bucket_name: loki-ruler }
alertmanager_url: http://alertmanager:9093
enable_api: true
enable_sharding: truehorizontal_scaling_mode: main|workerenforced_labels: [service.name]structured_metadata parameter supportAlways validate before deployment:
# Syntax and parameter validation
loki -config.file=loki-config.yaml -verify-config
# Print resolved configuration (shows defaults)
loki -config.file=loki-config.yaml -print-config-stderr 2>&1 | head -100
# Dry-run with Docker (if Loki not installed locally)
docker run --rm -v $(pwd)/loki-config.yaml:/etc/loki/config.yaml \
grafana/loki:3.6.2 -config.file=/etc/loki/config.yaml -verify-configValidation Checklist:
-verify-configtsdb and v13replication_factor: 3 for productionauth_enabled: true if multi-tenantZone-Aware Replication (CRITICAL for production multi-AZ deployments):
When using replication_factor: 3, ALWAYS enable zone-awareness for multi-AZ deployments:
ingester:
lifecycler:
ring:
replication_factor: 3
zone_awareness_enabled: true # CRITICAL for multi-AZ
# Set zone via environment variable or config
# Each pod should set its zone based on node topology
common:
instance_availability_zone: ${AVAILABILITY_ZONE}Why: Without zone-awareness, all 3 replicas may land in the same AZ. If that AZ fails, you lose data.
Kubernetes Implementation:
# In Helm values or pod spec
env:
- name: AVAILABILITY_ZONE
valueFrom:
fieldRef:
fieldPath: metadata.labels['topology.kubernetes.io/zone']Enable TLS for all inter-component and client communication:
server:
http_tls_config:
cert_file: /etc/loki/tls/tls.crt
key_file: /etc/loki/tls/tls.key
client_ca_file: /etc/loki/tls/ca.crt # For mTLS
grpc_tls_config:
cert_file: /etc/loki/tls/tls.crt
key_file: /etc/loki/tls/tls.key
client_ca_file: /etc/loki/tls/ca.crtSee examples/production-tls.yaml for complete TLS configuration.
| Requirement | Setting | Required For |
|---|---|---|
replication_factor: 3 | common block | All production |
zone_awareness_enabled: true | ingester.lifecycler.ring | Multi-AZ |
auth_enabled: true | root level | Multi-tenant |
| TLS enabled | server block | All production |
| IAM roles (not keys) | storage config | Cloud storage |
| Caching enabled | chunk_store_config, query_range | Performance |
| Pattern ingester | pattern_ingester.enabled | Observability |
| Retention configured | compactor + limits_config | Cost control |
Configure Prometheus to scrape Loki metrics and alert on these critical indicators:
# Prometheus scrape config
- job_name: 'loki'
static_configs:
- targets: ['loki:3100']groups:
- name: loki-critical
rules:
# Ingestion failures
- alert: LokiIngestionFailures
expr: sum(rate(loki_distributor_ingester_append_failures_total[5m])) > 0
for: 5m
labels:
severity: critical
annotations:
summary: "Loki ingestion failures detected"
# High stream cardinality (performance killer)
- alert: LokiHighStreamCardinality
expr: loki_ingester_memory_streams > 100000
for: 10m
labels:
severity: warning
annotations:
summary: "High stream cardinality - review labels"
# Compaction not running (retention broken)
- alert: LokiCompactionStalled
expr: time() - loki_compactor_last_successful_run_timestamp_seconds > 7200
for: 5m
labels:
severity: critical
annotations:
summary: "Loki compaction stalled - retention not enforced"
# Query latency
- alert: LokiSlowQueries
expr: histogram_quantile(0.99, sum(rate(loki_request_duration_seconds_bucket{route=~"loki_api_v1_query.*"}[5m])) by (le)) > 30
for: 10m
labels:
severity: warning
annotations:
summary: "Loki query P99 latency > 30s"
# Ingester memory pressure
- alert: LokiIngesterMemoryHigh
expr: container_memory_usage_bytes{container="ingester"} / container_spec_memory_limit_bytes{container="ingester"} > 0.8
for: 10m
labels:
severity: warning
annotations:
summary: "Loki ingester memory usage > 80%"| Metric | Description | Action Threshold |
|---|---|---|
loki_ingester_memory_streams | Active streams in memory | >100k: review cardinality |
loki_distributor_ingester_append_failures_total | Ingestion failures | >0: investigate immediately |
loki_request_duration_seconds | Query latency | P99 >30s: add caching/queriers |
loki_ingester_chunks_flushed_total | Chunk flush rate | Low rate: check ingester health |
loki_compactor_last_successful_run_timestamp_seconds | Last compaction | >2h ago: compaction broken |
Import official Loki dashboards:
13407 - Loki Logs14055 - Loki OperationalPromtail is deprecated (support ends Feb 2026). Use Grafana Alloy for new deployments.
See examples/grafana-alloy.alloy for the Alloy pipeline and examples/grafana-alloy-daemonset.yaml for the Kubernetes deployment.
// Kubernetes log discovery
discovery.kubernetes "pods" {
role = "pod"
}
// Relabeling for Kubernetes metadata
discovery.relabel "pods" {
targets = discovery.kubernetes.pods.targets
rule {
source_labels = ["__meta_kubernetes_namespace"]
target_label = "namespace"
}
rule {
source_labels = ["__meta_kubernetes_pod_name"]
target_label = "pod"
}
rule {
source_labels = ["__meta_kubernetes_pod_container_name"]
target_label = "container"
}
}
// Log collection
loki.source.kubernetes "pods" {
targets = discovery.relabel.pods.output
forward_to = [loki.write.default.receiver]
}
// Send to Loki
loki.write "default" {
endpoint {
url = "http://loki-gateway.loki.svc.cluster.local/loki/api/v1/push"
// For multi-tenant
tenant_id = "default"
}
}# Convert Promtail config to Alloy
alloy convert --source-format=promtail --output=alloy-config.alloy promtail.yamlSee examples/ directory for full configurations:
monolithic-filesystem.yaml - Development/testingsimple-scalable-s3.yaml - Production with S3microservices-s3.yaml - Large-scale distributedmulti-tenant.yaml - Multi-tenant with per-tenant limitsproduction-tls.yaml - TLS-enabled production configgrafana-alloy.alloy - Log collection pipeline with Alloygrafana-alloy-daemonset.yaml - Kubernetes DaemonSet for Alloykubernetes-helm-values.yaml - Helm chart valuesMinimal Monolithic:
auth_enabled: false
server:
http_listen_port: 3100
common:
path_prefix: /loki
storage:
filesystem:
chunks_directory: /loki/chunks
rules_directory: /loki/rules
replication_factor: 1
ring:
kvstore:
store: inmemory
schema_config:
configs:
- from: 2025-01-01
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: loki_index_
period: 24h
limits_config:
retention_period: 30d
allow_structured_metadata: true
compactor:
working_directory: /loki/compactor
retention_enabled: truehelm repo add grafana https://grafana.github.io/helm-charts
helm install loki grafana/loki -f values.yamlGenerate both native config and Helm values for Kubernetes deployments.
# values.yaml
deploymentMode: SimpleScalable
loki:
schemaConfig:
configs:
- from: "2025-01-01"
store: tsdb
object_store: s3
schema: v13
index:
prefix: loki_index_
period: 24h
limits_config:
retention_period: 30d
allow_structured_metadata: true
# Zone awareness for HA
ingester:
lifecycler:
ring:
zone_awareness_enabled: true
backend:
replicas: 3
# Spread across zones
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: DoNotSchedule
read:
replicas: 3
write:
replicas: 3Performance:
chunk_encoding: snappy, chunk_target_size: 1572864parallelise_shardable_queries: trueSecurity:
auth_enabled: true with reverse proxy authReliability:
replication_factor: 3 for productionzone_awareness_enabled: true for multi-AZ (see Production Checklist)Limits: Set ingestion_rate_mb, max_streams_per_user to prevent overload
| Issue | Solution |
|---|---|
| High ingester memory | Reduce max_streams_per_user, lower chunk_idle_period |
| Slow queries | Increase max_concurrent, enable parallelization, add caching |
| Ingestion failures | Check ingestion_rate_mb, verify storage connectivity |
| Storage growing fast | Enable retention, check compression, review cardinality |
| Data loss in AZ failure | Enable zone_awareness_enabled: true |
| Config validation fails | Run loki -verify-config, check YAML syntax |
boltdb-shipper → tsdblokiexporter → otlphttpscripts/generate_config.py - Generate configs programmatically (RECOMMENDED) examples/ - Complete configuration examples for all modes references/ - Full parameter reference and best practices
© akin-ozer, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 17 other files (scripts, references) in devops-skills-plugin/skills/loki-config-generator of akin-ozer/cc-devops-skills.
Open the folder on GitHubat commit 276af75
Loki Config Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Loki Config Generator this skillakin-ozer/cc-devops-skills | 320 | — | ~4.6k | Automated safety check: Pass | Apache-2.0 | |
| Mimirgrafana/skills | 282 | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Tempografana/skills | 282 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Aspire MonitoringCommunityToolkit/Aspire | 627 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Alloygrafana/skills | 282 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Beylagrafana/skills | 282 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
grafana/skills
Stand up Grafana Mimir for horizontally scalable, multi-tenant, long-term Prometheus + OTLP metrics storage.
grafana/skills
Stand up Grafana Tempo as a cost-efficient distributed-tracing backend that only needs object storage, and write TraceQL queries against it.
CommunityToolkit/Aspire
ANALYSIS SKILL - Observe Aspire apps: logs, traces, metrics, resource state, telemetry export, browser telemetry, and the standalone dashboard.
grafana/skills
Build a unified telemetry pipeline with Grafana Alloy — one OpenTelemetry-compatible binary that collects metrics, logs, traces, and profiles and ships to Grafana Cloud / Prometheus / Loki / Tempo /…
grafana/skills
Auto-instrument an application's HTTP / gRPC / DB traffic with Grafana Beyla eBPF — no code changes, no SDK, no restart.
grafana/skills
Ship Kubernetes, host, container, and cloud-provider telemetry into Grafana Cloud — k8s-monitoring Helm chart for K8s clusters (metrics + logs + traces + events + cost), Alloy…
akin-ozer/cc-devops-skills
Create, generate, or scaffold GitHub Actions workflows, action.yml, or .github/workflows CI/CD pipelines.
akin-ozer/cc-devops-skills
Create, scaffold, or generate Helm charts, Chart.yaml, values.yaml, templates, helpers.
akin-ozer/cc-devops-skills
Generate/create/scaffold Jenkinsfile — declarative, scripted, shared library, CI/CD pipelines.
akin-ozer/cc-devops-skills
Validate, lint, audit, or scan a Dockerfile for security and best practices.
akin-ozer/cc-devops-skills
Validate, lint, audit, fix GitHub Actions workflows (.github/workflows).
akin-ozer/cc-devops-skills
Validate, lint, audit, or check Jenkinsfiles and shared libraries.
Categories
Generate/create Loki configs — ingester, querier, compactor, ruler, S3/GCS/Azure backends. Loki Config Generator is an agent skill from akin-ozer/cc-devops-skills. Generate/create Loki configs — ingester, querier, compactor, ruler, S3/GCS/Azure backends.
Loki Config Generator fits situations like: tasks that involve File uploads and storage; tasks that involve Container orchestration.
Run `npx skills add akin-ozer/cc-devops-skills --skill loki-config-generator -a claude-code`. Or copy the skill folder (devops-skills-plugin/skills/loki-config-generator in akin-ozer/cc-devops-skills) into .claude/skills/loki-config-generator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add akin-ozer/cc-devops-skills --skill loki-config-generator -a codex`. Or copy the skill folder (devops-skills-plugin/skills/loki-config-generator in akin-ozer/cc-devops-skills) into .agents/skills/loki-config-generator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add akin-ozer/cc-devops-skills --skill loki-config-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/loki-config-generator, .gemini/skills/loki-config-generator, .github/skills/loki-config-generator and .opencode/skills/loki-config-generator in your project.
Going by SKILL.md and its folder, Loki Config Generator needs Python for the scripts in its folder and the command-line tools its instructions call (python3, helm and docker). Our summary lists: Python 3; Docker.
SKILL.md names 2 domains. In commands or code: grafana.github.io; the agent is likely to contact it when it follows the instructions. As links in the text: grafana.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Loki Config Generator is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.6k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 12k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Loki Config Generator: Mimir (grafana/skills, 282 stars), Tempo (grafana/skills, 282 stars), Aspire Monitoring (CommunityToolkit/Aspire, 627 stars) and Alloy (grafana/skills, 282 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
akin-ozer (a GitHub user) maintains it in akin-ozer/cc-devops-skills, which has 320 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on July 26, 2026.
Source: akin-ozer/cc-devops-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.