name: grafana rules: - name: production dashboards should have production alerts desc: dashboards with the production tag must use notification channels with production in the name level: info tags: - grafana - dashboard # this is not the ideal selector for this rule, but tags are located at $.dashboard.tags, while notification # channels are nested under $.dashboard.panels[*].alert.notifications[*].uid select: '$.dashboard' filter: type: object properties: tags: type: array items: type: string contains: pattern: production check: type: object properties: panels: type: array items: type: object properties: alert: type: object properties: notifications: type: array items: type: object required: [uid] properties: uid: type: string pattern: production