Skip to content
cccskills
FreePublished on GitHub

grafana

Use when working with Grafana — dashboards, Loki LogQL queries, alerting rules, monitoring panels — even when the user just says 'build me a dashboard' or 'query the logs' without naming Grafana.

The English summary is being prepared. Showing the original description.

Works withDocker
See how to install

Files included (1)

  • SKILL.md6.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Grafana Skill

When to use

Use this skill when:

  • Creating or editing Grafana dashboards (JSON provisioning)
  • Writing Loki LogQL queries for log analysis
  • Configuring alerting rules or contact points
  • Working on a Grafana module (if the project has one)
  • Debugging log-based issues using Loki data

Procedure: Create Grafana dashboard

  1. Inspect existing Grafana assets — Check the project's Grafana location (Docker config, dashboards/, provisioning) and existing datasources (Loki, Prometheus) before adding panels.
  2. Decide signals and layout — Pick the queries (LogQL / PromQL) and panel types per signal; reuse naming and label conventions below.
  3. Author the dashboard JSON — Add provisioned JSON under the dashboards path; wire datasources and template variables.
  4. Verify — Reload Grafana, confirm panels render against real data, and check alert rules fire on synthetic test inputs.

Project setup

Check if the project has a dedicated Grafana module or Docker config. Typical structure:

{grafana-location}/
├── .docker/
│   ├── grafana/
│   │   ├── dashboards/              ← Dashboard JSON files (provisioned)
│   │   ├── provisioning/
│   │   │   ├── datasources/         ← Loki, Prometheus data sources
│   │   │   └── dashboards/          ← Dashboard provisioning config
│   │   └── alerting/                ← Alert rules, contact points, notification policies
│   └── loki/
│       └── loki-config.yml          ← Loki server configuration
├── App/
│   ├── Logging/                     ← Loki timestamp processors
│   └── Console/Commands/            ← GrafanaPushDashboardsCommand
├── Docs/
│   └── Loki.md                      ← Loki documentation
└── Routes/console.php

Configuration

  • Grafana config: config/grafana.php
  • Logging channels: config/logging.php (Loki channels)
  • Loki package: itspire/monolog-loki via Monolog handler

Dashboard conventions

JSON provisioning

Dashboards are stored as JSON in .docker/grafana/dashboards/ and auto-provisioned. Use GrafanaPushDashboardsCommand to push dashboards to remote Grafana instances.

Panel rules

  • Always hide Loki metadata columns in table panels: labelTypes, traceID, traceID (field) → add to excludeByName in the organize transformation.
  • Verify column names match data semantics: If the timestamp represents imported_at, name the column "Imported", not "Uploaded".
  • Use consistent time ranges: Default to "Last 24 hours" for operational dashboards.
  • Add variables for customer FQDN, environment, and time range filters.

Naming

ElementConventionExample
Dashboard titleDescriptive, Title Case"Import Overview (Loki)"
Panel titleShort, descriptive"Import Results by Status"
Variable nameslowercase, underscore$fqdn, $environment

Loki LogQL

Query patterns

# Filter by service and status
{service="import_result"} |= "DONE" | json | status = "DONE"

# Count by label
sum by (status) (count_over_time({service="import_result"} | json [$__interval]))

# Filter by customer FQDN
{service="import_result", fqdn=~"$fqdn"} | json

Service labels

LabelPurposeNotes
import_resultFinal import states (DONE, FAILED)Use for result dashboards
import_snapshotCron-based status snapshotsUse for timeline dashboards
service=importLegacy static labelDo NOT query — use specific labels above

Best practices

  • Use json parser for structured log entries
  • Use line_format for human-readable output in explore view
  • Use $__interval for rate/count queries (auto-adjusts to time range)
  • Filter early in the pipeline (labels before line filters before parsers)

Alerting

Structure

.docker/grafana/alerting/
├── alert-rules.yml          ← Alert conditions and thresholds
├── contact-points.yml       ← Notification targets (Slack, email)
└── notification-policies.yml ← Routing rules (which alerts → which contacts)

Conventions

  • Alert names: descriptive, include severity: "Import Failure Rate > 10% (Critical)"
  • Use for duration to avoid flapping (e.g., for: 5m)
  • Group related alerts by folder/namespace

Integration with logging

The project uses structured logging via Monolog → Loki:

  • LokiTimestampProcessor — Adds precise timestamps to log entries
  • LokiTimestampChannelTap — Configures Loki channels with timestamp processing
  • Import events are logged via ImportEventLogger service

When adding new log entries for Grafana visualization:

  1. Use a dedicated log channel (defined in config/logging.php)
  2. Log as JSON with consistent field names
  3. Add appropriate Loki labels for filtering
  4. Update or create a dashboard panel for the new data

Related

  • Skill: logging-monitoring — full monitoring stack overview
  • Skill: dashboard-design — visualization selection, layout, KPI strategies
  • Skill: traefik — HTTPS for Grafana embedding in the app
  • Check the project for Grafana module or Docker config location
  • Config: config/grafana.php, config/logging.php (if applicable)

Output format

  1. Grafana dashboard JSON or LogQL/PromQL queries
  2. Panel configuration with data source and thresholds
  3. Alert rule definitions where applicable

Gotcha

  • Loki queries use LogQL, not PromQL — the syntax is different despite looking similar.
  • Don't create alerts without a clear notification channel — silent alerts are useless.
  • Dashboard panels that query too much data (>7 days at full resolution) will timeout — use downsampling.

Do NOT

  • Do NOT create panels without proper units and labels.
  • Do NOT use alerting rules without a notification channel.
  • Do NOT hardcode datasource names — use variables.

Auto-trigger keywords

  • Grafana
  • Loki
  • dashboard
  • log query
  • alerting
  • monitoring panel

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config12Updated Oct 20, 2026

Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config12Updated Oct 20, 2026

Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config12Updated Oct 20, 2026

Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config12Updated Oct 20, 2026

Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config12Updated Oct 20, 2026

Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config12Updated Oct 20, 2026

See all skills by event4u-app

Report a problem with this skill