├── .gitignore ├── aws-s3 └── aws-s3.png ├── aws-ebs └── aws-ebs.png ├── aws-ec2 └── aws-ec2.png ├── aws-ecs ├── aws-ecs.png └── aws-ecs.json ├── aws-efs └── aws-efs.png ├── aws-eks └── aws-eks.png ├── aws-fsx └── aws-fsx.png ├── aws-logs ├── aws-logs.png └── aws-logs.json ├── aws-rds └── aws-rds.png ├── aws-ses ├── aws-ses.png └── aws-ses.json ├── aws-sns └── aws-sns.png ├── aws-sqs └── aws-sqs.png ├── aws-waf └── aws-waf.png ├── aws-x-ray ├── aws-x-ray.png └── aws-x-ray.json ├── aws-lambda └── aws-lambda.png ├── .gitpod ├── provisioning │ ├── plugins │ │ └── plugins.yaml │ ├── dashboards │ │ └── file-provider.yml │ └── datasources │ │ └── datasources.yaml └── docker-compose-gitpod.yml ├── aws-billing ├── aws-billing.png └── aws-billing.json ├── aws-cognito └── aws-cognito.png ├── aws-emr └── aws-emr-hadoop-2.png ├── aws-kinesis └── aws-kinesis.png ├── aws-codebuild └── aws-codebuild.png ├── aws-dynamodb └── aws-dynamodb.png ├── aws-elb ├── aws-elb-classic-lb.png └── aws-elb-application-lb.png ├── aws-inspector ├── aws-inspector.png └── aws-inspector.json ├── aws-redshift └── aws-redshift.png ├── aws-route-53 └── aws-route-53.png ├── aws-cloudfront └── aws-cloudfront.png ├── aws-prometheus └── aws-prometheus.png ├── aws-api-gateway └── aws-api-gateway.png ├── aws-autoscaling ├── aws-autoscaling.png └── aws-autoscaling.json ├── aws-eventbridge └── aws-eventbridge.png ├── aws-direct-connect └── aws-direct-connect.png ├── aws-elasticache └── aws-elasticache-redis.png ├── aws-step-functions └── aws-step-functions.png ├── aws-storage-gateway └── aws-storage-gateway.png ├── aws-transfer-family ├── aws-transfer-family.png └── aws-transfer-family.json ├── aws-transit-gateway └── aws-transit-gateway.png ├── aws-kinesis-firehose └── aws-kinesis-firehose.png ├── aws-network-firewall ├── aws-network-firewall.png └── aws-network-firewall.json ├── aws-certificate-manager ├── aws-certificate-manager.png └── aws-certificate-manager.json ├── aws-cloudwatch-synthetics └── aws-cloudwatch-synthetics.png ├── aws-cloudwatch-usage-metrics ├── aws-cloudwatch-usage-metrics.png └── aws-cloudwatch-usage-metrics.json ├── .github └── workflows │ ├── duplicates.yml │ ├── provisioning │ └── dashboards │ │ └── file-provider.yml │ ├── test.yml │ ├── find-duplicates.py │ └── standards.py ├── .gitpod.yml ├── dashboards.libsonnet ├── CODE_OF_CONDUCT.md ├── aws-vpn └── aws-vpn.json └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | all-dashboards 2 | .github/workflows/all-dashboards 3 | -------------------------------------------------------------------------------- /aws-s3/aws-s3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-s3/aws-s3.png -------------------------------------------------------------------------------- /aws-ebs/aws-ebs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-ebs/aws-ebs.png -------------------------------------------------------------------------------- /aws-ec2/aws-ec2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-ec2/aws-ec2.png -------------------------------------------------------------------------------- /aws-ecs/aws-ecs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-ecs/aws-ecs.png -------------------------------------------------------------------------------- /aws-efs/aws-efs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-efs/aws-efs.png -------------------------------------------------------------------------------- /aws-eks/aws-eks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-eks/aws-eks.png -------------------------------------------------------------------------------- /aws-fsx/aws-fsx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-fsx/aws-fsx.png -------------------------------------------------------------------------------- /aws-logs/aws-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-logs/aws-logs.png -------------------------------------------------------------------------------- /aws-rds/aws-rds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-rds/aws-rds.png -------------------------------------------------------------------------------- /aws-ses/aws-ses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-ses/aws-ses.png -------------------------------------------------------------------------------- /aws-sns/aws-sns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-sns/aws-sns.png -------------------------------------------------------------------------------- /aws-sqs/aws-sqs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-sqs/aws-sqs.png -------------------------------------------------------------------------------- /aws-waf/aws-waf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-waf/aws-waf.png -------------------------------------------------------------------------------- /aws-x-ray/aws-x-ray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-x-ray/aws-x-ray.png -------------------------------------------------------------------------------- /aws-lambda/aws-lambda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-lambda/aws-lambda.png -------------------------------------------------------------------------------- /.gitpod/provisioning/plugins/plugins.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | apps: 4 | - type: grafana-x-ray-datasource 5 | disabled: false 6 | -------------------------------------------------------------------------------- /aws-billing/aws-billing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-billing/aws-billing.png -------------------------------------------------------------------------------- /aws-cognito/aws-cognito.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-cognito/aws-cognito.png -------------------------------------------------------------------------------- /aws-emr/aws-emr-hadoop-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-emr/aws-emr-hadoop-2.png -------------------------------------------------------------------------------- /aws-kinesis/aws-kinesis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-kinesis/aws-kinesis.png -------------------------------------------------------------------------------- /aws-codebuild/aws-codebuild.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-codebuild/aws-codebuild.png -------------------------------------------------------------------------------- /aws-dynamodb/aws-dynamodb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-dynamodb/aws-dynamodb.png -------------------------------------------------------------------------------- /aws-elb/aws-elb-classic-lb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-elb/aws-elb-classic-lb.png -------------------------------------------------------------------------------- /aws-inspector/aws-inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-inspector/aws-inspector.png -------------------------------------------------------------------------------- /aws-redshift/aws-redshift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-redshift/aws-redshift.png -------------------------------------------------------------------------------- /aws-route-53/aws-route-53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-route-53/aws-route-53.png -------------------------------------------------------------------------------- /aws-cloudfront/aws-cloudfront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-cloudfront/aws-cloudfront.png -------------------------------------------------------------------------------- /aws-prometheus/aws-prometheus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-prometheus/aws-prometheus.png -------------------------------------------------------------------------------- /aws-api-gateway/aws-api-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-api-gateway/aws-api-gateway.png -------------------------------------------------------------------------------- /aws-autoscaling/aws-autoscaling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-autoscaling/aws-autoscaling.png -------------------------------------------------------------------------------- /aws-elb/aws-elb-application-lb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-elb/aws-elb-application-lb.png -------------------------------------------------------------------------------- /aws-eventbridge/aws-eventbridge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-eventbridge/aws-eventbridge.png -------------------------------------------------------------------------------- /aws-direct-connect/aws-direct-connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-direct-connect/aws-direct-connect.png -------------------------------------------------------------------------------- /aws-elasticache/aws-elasticache-redis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-elasticache/aws-elasticache-redis.png -------------------------------------------------------------------------------- /aws-step-functions/aws-step-functions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-step-functions/aws-step-functions.png -------------------------------------------------------------------------------- /aws-storage-gateway/aws-storage-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-storage-gateway/aws-storage-gateway.png -------------------------------------------------------------------------------- /aws-transfer-family/aws-transfer-family.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-transfer-family/aws-transfer-family.png -------------------------------------------------------------------------------- /aws-transit-gateway/aws-transit-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-transit-gateway/aws-transit-gateway.png -------------------------------------------------------------------------------- /aws-kinesis-firehose/aws-kinesis-firehose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-kinesis-firehose/aws-kinesis-firehose.png -------------------------------------------------------------------------------- /aws-network-firewall/aws-network-firewall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-network-firewall/aws-network-firewall.png -------------------------------------------------------------------------------- /aws-certificate-manager/aws-certificate-manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-certificate-manager/aws-certificate-manager.png -------------------------------------------------------------------------------- /aws-cloudwatch-synthetics/aws-cloudwatch-synthetics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-cloudwatch-synthetics/aws-cloudwatch-synthetics.png -------------------------------------------------------------------------------- /aws-cloudwatch-usage-metrics/aws-cloudwatch-usage-metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monitoringartist/grafana-aws-cloudwatch-dashboards/HEAD/aws-cloudwatch-usage-metrics/aws-cloudwatch-usage-metrics.png -------------------------------------------------------------------------------- /.gitpod/provisioning/dashboards/file-provider.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: 'file-provider' 5 | orgId: 1 6 | folder: 'Provisioned CloudWatch Dashboards' 7 | type: file 8 | updateIntervalSeconds: 600 9 | allowUiUpdates: false 10 | options: 11 | path: /tmp/dashboards 12 | foldersFromFilesStructure: false 13 | -------------------------------------------------------------------------------- /.github/workflows/duplicates.yml: -------------------------------------------------------------------------------- 1 | name: Duplicates 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | test: 8 | name: Find duplicates 9 | runs-on: ubuntu-20.04 10 | steps: 11 | - name: Checkout 12 | uses: actions/checkout@v2 13 | 14 | - name: Find duplicates 15 | run: python .github/workflows/find-duplicates.py 16 | -------------------------------------------------------------------------------- /.github/workflows/provisioning/dashboards/file-provider.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: 'file-provider' 5 | orgId: 1 6 | folder: 'Provisioned CloudWatch Dashboards' 7 | type: file 8 | updateIntervalSeconds: 600 9 | allowUiUpdates: false 10 | options: 11 | path: /tmp/dashboards 12 | foldersFromFilesStructure: false 13 | -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- 1 | ports: 2 | - port: 3000 3 | onOpen: open-browser 4 | 5 | tasks: 6 | - name: grafana 7 | init: >- 8 | export IMAGE="${IMAGE:=grafana/grafana-enterprise:latest}" && 9 | mkdir all-dashboards && 10 | find . ! -path all-dashboards -type f -name *.json -exec cp {} all-dashboards \; && 11 | chmod 755 -R all-dashboards && 12 | docker-compose -f .gitpod/docker-compose-gitpod.yml up -d && 13 | docker logs -f grafana 14 | -------------------------------------------------------------------------------- /.gitpod/provisioning/datasources/datasources.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | datasources: 4 | - name: cloudwatch-dummy 5 | uid: cldwtcidp 6 | type: cloudwatch 7 | jsonData: 8 | authType: default 9 | defaultRegion: eu-west-1 10 | tracingDatasourceUid: awxraydum 11 | - name: xray-dummy 12 | uid: awxraydum 13 | type: grafana-x-ray-datasource 14 | jsonData: 15 | trendsFrom: 30d 16 | trendsRange: 7d 17 | authType: default 18 | defaultRegion: eu-west-1 19 | -------------------------------------------------------------------------------- /.gitpod/docker-compose-gitpod.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | 3 | services: 4 | grafana: 5 | container_name: grafana 6 | image: ${IMAGE} 7 | ports: 8 | - 3000:3000 9 | environment: 10 | GF_AUTH_ANONYMOUS_ENABLED: "true" 11 | GF_USERS_VIEWERS_CAN_EDIT: "true" 12 | AWS_SDK_LOAD_CONFIG: "true" 13 | GF_AUTH_SIGV4_AUTH_ENABLED: "true" 14 | GF_INSTALL_PLUGINS: grafana-x-ray-datasource 15 | volumes: 16 | - ../.gitpod/provisioning/:/etc/grafana/provisioning/ 17 | - .././all-dashboards:/tmp/dashboards 18 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | workflow_dispatch: 8 | 9 | jobs: 10 | test: 11 | name: CI tests 12 | runs-on: ubuntu-24.04 13 | steps: 14 | - name: Checkout 15 | uses: actions/checkout@v4 16 | 17 | - name: Docker Login 18 | uses: docker/login-action@v3 19 | with: 20 | username: ${{ secrets.DOCKER_HUB_LOGIN }} 21 | password: ${{ secrets.DOCKER_HUB_PASSWORD }} 22 | 23 | - name: Provision dashboards 24 | run: | 25 | mkdir .github/workflows/all-dashboards 26 | find . ! -path .github/workflows/all-dashboards -type f -name *.json -exec cp {} .github/workflows/all-dashboards \; 27 | docker pull grafana/grafana:latest 28 | docker run --name grafana -d \ 29 | -e GF_LOG_CONSOLE_FORMAT=json \ 30 | -e GF_LOG_LEVEL=error \ 31 | -v $PWD/.github/workflows/provisioning/dashboards/:/etc/grafana/provisioning/dashboards/ \ 32 | -v $PWD/.github/workflows/all-dashboards/:/tmp/dashboards/ \ 33 | grafana/grafana:latest 34 | sleep 20 35 | ERROR=$(docker logs grafana | grep -v "plugin xychart is already registered" | jq .) 36 | if [ ! -z "$ERROR" ]; then echo "$ERROR" && exit 1; fi 37 | 38 | - name: Check standards 39 | run: | 40 | python3 .github/workflows/standards.py 41 | -------------------------------------------------------------------------------- /.github/workflows/find-duplicates.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | # Naive detection of plain dashboard duplicates on https://grafana.com/grafana/dashboards?dataSource=cloudwatch 4 | 5 | url="https://grafana.com/api/dashboards?orderBy=name&direction=asc&includeLogo=0&page=1&pageSize=1000&dataSourceSlugIn=cloudwatch" 6 | 7 | def downloadDashboard(d): 8 | resp = requests.get(url="https://grafana.com/api/dashboards/" + str(i['id']) + "/revisions/" + str(i['revision']) + "/download") 9 | return resp.json() 10 | 11 | def normalizeDashboard(d): 12 | keys = ['__inputs','__requires','annotations','description','editable','gnetId','iteration','links','refresh','schemaVersion','style','tags','templating','time','timepicket','timezone','title','uid','version'] 13 | for k in keys: 14 | if k in d: 15 | del(d[k]) 16 | ''' 17 | i = 0 18 | pkeys = ['datasource','fieldConfig','fillGradient','hiddenSeries','legend','pluginVersion','timeRegions'] 19 | for p in d['panels']: 20 | for pk in pkeys: 21 | if pk in d['panels'][i]: 22 | del(d['panels'][i][pk]) 23 | i = i + 1 24 | ''' 25 | return d 26 | 27 | resp = requests.get(url=url) 28 | data = resp.json() 29 | 30 | monDashboards = {} 31 | nonMonDashboards = [] 32 | for i in data["items"]: 33 | if i['orgSlug'] == 'monitoringartist': 34 | monDashboards[i['name'].lower().strip()] = normalizeDashboard(downloadDashboard(i)) 35 | else: 36 | nonMonDashboards.append(i) 37 | 38 | for i in nonMonDashboards: 39 | if i['name'].lower().strip() in monDashboards: 40 | if normalizeDashboard(downloadDashboard(i)) == monDashboards[i['name'].lower().strip()]: 41 | print("Found a copy: " + str(i['id']) + " - " + i['name'] + " by " + i['orgName']) 42 | -------------------------------------------------------------------------------- /dashboards.libsonnet: -------------------------------------------------------------------------------- 1 | { 2 | grafanaDashboards:: { 3 | 'aws-api-gateway.json': (import 'aws-api-gateway/aws-api-gateway.json'), 4 | 'aws-autoscaling.json': (import 'aws-autoscaling/aws-autoscaling.json'), 5 | 'aws-billing.json': (import 'aws-billing/aws-billing.json'), 6 | 'aws-certificate-manager.json': (import 'aws-certificate-manager/aws-certificate-manager.json'), 7 | 'aws-cloudfront.json': (import 'aws-cloudfront/aws-cloudfront.json'), 8 | 'aws-cloudwatch-synthetics.json': (import 'aws-cloudwatch-synthetics/aws-cloudwatch-synthetics.json'), 9 | 'aws-cloudwatch-usage-metrics.json': (import 'aws-cloudwatch-usage-metrics/aws-cloudwatch-usage-metrics.json'), 10 | 'aws-codebuild.json': (import 'aws-codebuild/aws-codebuild.json'), 11 | 'aws-cognito.json': (import 'aws-cognito/aws-cognito.json'), 12 | 'aws-direct-connect.json': (import 'aws-direct-connect/aws-direct-connect.json'), 13 | 'aws-dynamodb.json': (import 'aws-dynamodb/aws-dynamodb.json'), 14 | 'aws-ebs.json': (import 'aws-ebs/aws-ebs.json'), 15 | 'aws-ec2.json': (import 'aws-ec2/aws-ec2.json'), 16 | 'aws-ecs.json': (import 'aws-ecs/aws-ecs.json'), 17 | 'aws-efs.json': (import 'aws-efs/aws-efs.json'), 18 | 'aws-eks.json': (import 'aws-eks/aws-eks.json'), 19 | 'aws-elasticache-redis.json': (import 'aws-elasticache/aws-elasticache-redis.json'), 20 | 'aws-elb-application-lb.json': (import 'aws-elb/aws-elb-application-lb.json'), 21 | 'aws-elb-classic-lb.json': (import 'aws-elb/aws-elb-classic-lb.json'), 22 | 'aws-emr-hadoop-2.json': (import 'aws-emr/aws-emr-hadoop-2.json'), 23 | 'aws-eventbridge.json': (import 'aws-eventbridge/aws-eventbridge.json'), 24 | 'aws-fsx.json': (import 'aws-fsx/aws-fsx.json'), 25 | 'aws-inspector.json': (import 'aws-inspector/aws-inspector.json'), 26 | 'aws-kinesis.json': (import 'aws-kinesis/aws-kinesis.json'), 27 | 'aws-kinesis-firehose.json': (import 'aws-kinesis-firehose/aws-kinesis-firehose.json'), 28 | 'aws-lambda.json': (import 'aws-lambda/aws-lambda.json'), 29 | 'aws-logs.json': (import 'aws-logs/aws-logs.json'), 30 | 'aws-network-firewall.json': (import 'aws-network-firewall/aws-network-firewall.json'), 31 | 'aws-prometheus.json': (import 'aws-prometheus/aws-prometheus.json'), 32 | 'aws-rds.json': (import 'aws-rds/aws-rds.json'), 33 | 'aws-redshift.json': (import 'aws-redshift/aws-redshift.json'), 34 | 'aws-route-53.json': (import 'aws-route-53/aws-route-53.json'), 35 | 'aws-s3.json': (import 'aws-s3/aws-s3.json'), 36 | 'aws-ses.json': (import 'aws-ses/aws-ses.json'), 37 | 'aws-sns.json': (import 'aws-sns/aws-sns.json'), 38 | 'aws-sqs.json': (import 'aws-sqs/aws-sqs.json'), 39 | 'aws-step-functions.json': (import 'aws-step-functions/aws-step-functions.json'), 40 | 'aws-storage-gateway.json': (import 'aws-storage-gateway/aws-storage-gateway.json'), 41 | 'aws-transfer-family.json': (import 'aws-transfer-family/aws-transfer-family.json'), 42 | 'aws-transit-gateway.json': (import 'aws-transit-gateway/aws-transit-gateway.json'), 43 | 'aws-vpn.json': (import 'aws-vpn/aws-vpn.json'), 44 | 'aws-waf.json': (import 'aws-waf/aws-waf.json'), 45 | 'aws-x-ray.json': (import 'aws-x-ray/aws-x-ray.json'), 46 | }, 47 | } 48 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at info@monitoringartist.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /aws-certificate-manager/aws-certificate-manager.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [], 3 | "__elements": {}, 4 | "__requires": [ 5 | { 6 | "type": "datasource", 7 | "id": "cloudwatch", 8 | "name": "CloudWatch", 9 | "version": "1.0.0" 10 | }, 11 | { 12 | "type": "grafana", 13 | "id": "grafana", 14 | "name": "Grafana", 15 | "version": "11.3.1" 16 | }, 17 | { 18 | "type": "panel", 19 | "id": "text", 20 | "name": "Text", 21 | "version": "" 22 | }, 23 | { 24 | "type": "panel", 25 | "id": "timeseries", 26 | "name": "Time series", 27 | "version": "" 28 | } 29 | ], 30 | "annotations": { 31 | "list": [ 32 | { 33 | "builtIn": 1, 34 | "datasource": { 35 | "type": "datasource", 36 | "uid": "grafana" 37 | }, 38 | "enable": true, 39 | "hide": true, 40 | "iconColor": "rgba(0, 211, 255, 1)", 41 | "name": "Annotations & Alerts", 42 | "type": "dashboard" 43 | } 44 | ] 45 | }, 46 | "description": "Visualize AWS Certificate Manager metrics", 47 | "editable": false, 48 | "fiscalYearStartMonth": 0, 49 | "graphTooltip": 0, 50 | "id": null, 51 | "links": [], 52 | "panels": [ 53 | { 54 | "datasource": { 55 | "uid": "$datasource" 56 | }, 57 | "description": "", 58 | "fieldConfig": { 59 | "defaults": { 60 | "color": { 61 | "mode": "palette-classic" 62 | }, 63 | "custom": { 64 | "axisBorderShow": false, 65 | "axisCenteredZero": false, 66 | "axisColorMode": "text", 67 | "axisLabel": "", 68 | "axisPlacement": "auto", 69 | "barAlignment": 0, 70 | "barWidthFactor": 0.6, 71 | "drawStyle": "line", 72 | "fillOpacity": 0, 73 | "gradientMode": "none", 74 | "hideFrom": { 75 | "legend": false, 76 | "tooltip": false, 77 | "viz": false 78 | }, 79 | "insertNulls": false, 80 | "lineInterpolation": "linear", 81 | "lineWidth": 1, 82 | "pointSize": 5, 83 | "scaleDistribution": { 84 | "type": "linear" 85 | }, 86 | "showPoints": "never", 87 | "spanNulls": true, 88 | "stacking": { 89 | "group": "A", 90 | "mode": "none" 91 | }, 92 | "thresholdsStyle": { 93 | "mode": "off" 94 | } 95 | }, 96 | "mappings": [], 97 | "min": 0, 98 | "thresholds": { 99 | "mode": "absolute", 100 | "steps": [ 101 | { 102 | "color": "green", 103 | "value": null 104 | }, 105 | { 106 | "color": "red", 107 | "value": 80 108 | } 109 | ] 110 | }, 111 | "unit": "none" 112 | }, 113 | "overrides": [] 114 | }, 115 | "gridPos": { 116 | "h": 9, 117 | "w": 24, 118 | "x": 0, 119 | "y": 0 120 | }, 121 | "id": 3, 122 | "options": { 123 | "alertThreshold": false, 124 | "legend": { 125 | "calcs": [ 126 | "mean", 127 | "max", 128 | "min" 129 | ], 130 | "displayMode": "table", 131 | "placement": "bottom", 132 | "showLegend": true 133 | }, 134 | "tooltip": { 135 | "mode": "multi", 136 | "sort": "none" 137 | } 138 | }, 139 | "pluginVersion": "11.3.1", 140 | "targets": [ 141 | { 142 | "alias": "{{CertificateArn}}", 143 | "datasource": { 144 | "type": "cloudwatch", 145 | "uid": "$datasource" 146 | }, 147 | "dimensions": { 148 | "CertificateArn": "$CertificateArn" 149 | }, 150 | "expression": "", 151 | "id": "", 152 | "label": "${PROP('Dim.CertificateArn')}", 153 | "matchExact": true, 154 | "metricEditorMode": 0, 155 | "metricName": "DaysToExpiry", 156 | "metricQueryType": 0, 157 | "namespace": "AWS/CertificateManager", 158 | "period": "", 159 | "refId": "A", 160 | "region": "$region", 161 | "statistic": "Average" 162 | } 163 | ], 164 | "title": "DaysToExpiry", 165 | "type": "timeseries" 166 | }, 167 | { 168 | "gridPos": { 169 | "h": 3, 170 | "w": 24, 171 | "x": 0, 172 | "y": 9 173 | }, 174 | "id": 5, 175 | "options": { 176 | "code": { 177 | "language": "plaintext", 178 | "showLineNumbers": false, 179 | "showMiniMap": false 180 | }, 181 | "content": " | \nAWS CloudWatch Certificate Manager documentation | \nInstalled from Grafana.com dashboards", 182 | "mode": "html" 183 | }, 184 | "pluginVersion": "11.3.1", 185 | "title": "Documentation", 186 | "type": "text" 187 | } 188 | ], 189 | "refresh": "", 190 | "schemaVersion": 40, 191 | "tags": [ 192 | "monitoringartist", 193 | "cloudwatch" 194 | ], 195 | "templating": { 196 | "list": [ 197 | { 198 | "current": {}, 199 | "includeAll": false, 200 | "label": "Datasource", 201 | "name": "datasource", 202 | "options": [], 203 | "query": "cloudwatch", 204 | "refresh": 1, 205 | "regex": "", 206 | "type": "datasource" 207 | }, 208 | { 209 | "current": {}, 210 | "datasource": { 211 | "type": "cloudwatch", 212 | "uid": "$datasource" 213 | }, 214 | "definition": "regions()", 215 | "includeAll": false, 216 | "label": "Region", 217 | "name": "region", 218 | "options": [], 219 | "query": "regions()", 220 | "refresh": 1, 221 | "regex": "", 222 | "type": "query" 223 | }, 224 | { 225 | "allValue": "*", 226 | "current": {}, 227 | "datasource": { 228 | "type": "cloudwatch", 229 | "uid": "$datasource" 230 | }, 231 | "definition": "dimension_values($region,AWS/CertificateManager,DaysToExpiry,CertificateArn)", 232 | "includeAll": true, 233 | "label": "CertificateArn", 234 | "name": "CertificateArn", 235 | "options": [], 236 | "query": "dimension_values($region,AWS/CertificateManager,DaysToExpiry,CertificateArn)", 237 | "refresh": 1, 238 | "regex": "", 239 | "sort": 1, 240 | "type": "query" 241 | } 242 | ] 243 | }, 244 | "time": { 245 | "from": "now-30d", 246 | "to": "now" 247 | }, 248 | "timepicker": {}, 249 | "timezone": "browser", 250 | "title": "AWS Certificate Manager", 251 | "uid": "AWSCertMg", 252 | "version": 2, 253 | "weekStart": "" 254 | } -------------------------------------------------------------------------------- /aws-x-ray/aws-x-ray.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [], 3 | "__elements": {}, 4 | "__requires": [ 5 | { 6 | "type": "datasource", 7 | "id": "cloudwatch", 8 | "name": "CloudWatch", 9 | "version": "1.0.0" 10 | }, 11 | { 12 | "type": "grafana", 13 | "id": "grafana", 14 | "name": "Grafana", 15 | "version": "11.3.1" 16 | }, 17 | { 18 | "type": "panel", 19 | "id": "text", 20 | "name": "Text", 21 | "version": "" 22 | }, 23 | { 24 | "type": "panel", 25 | "id": "timeseries", 26 | "name": "Time series", 27 | "version": "" 28 | } 29 | ], 30 | "annotations": { 31 | "list": [ 32 | { 33 | "builtIn": 1, 34 | "datasource": { 35 | "type": "datasource", 36 | "uid": "grafana" 37 | }, 38 | "enable": true, 39 | "hide": true, 40 | "iconColor": "rgba(0, 211, 255, 1)", 41 | "name": "Annotations & Alerts", 42 | "target": { 43 | "limit": 100, 44 | "matchAny": false, 45 | "tags": [], 46 | "type": "dashboard" 47 | }, 48 | "type": "dashboard" 49 | } 50 | ] 51 | }, 52 | "description": "Visualize AWS X-Ray metrics", 53 | "editable": false, 54 | "fiscalYearStartMonth": 0, 55 | "graphTooltip": 0, 56 | "id": null, 57 | "links": [], 58 | "panels": [ 59 | { 60 | "datasource": { 61 | "uid": "$datasource" 62 | }, 63 | "fieldConfig": { 64 | "defaults": { 65 | "color": { 66 | "mode": "palette-classic" 67 | }, 68 | "custom": { 69 | "axisBorderShow": false, 70 | "axisCenteredZero": false, 71 | "axisColorMode": "text", 72 | "axisLabel": "", 73 | "axisPlacement": "auto", 74 | "barAlignment": 0, 75 | "barWidthFactor": 0.6, 76 | "drawStyle": "line", 77 | "fillOpacity": 10, 78 | "gradientMode": "none", 79 | "hideFrom": { 80 | "legend": false, 81 | "tooltip": false, 82 | "viz": false 83 | }, 84 | "insertNulls": false, 85 | "lineInterpolation": "linear", 86 | "lineWidth": 1, 87 | "pointSize": 5, 88 | "scaleDistribution": { 89 | "type": "linear" 90 | }, 91 | "showPoints": "never", 92 | "spanNulls": false, 93 | "stacking": { 94 | "group": "A", 95 | "mode": "none" 96 | }, 97 | "thresholdsStyle": { 98 | "mode": "off" 99 | } 100 | }, 101 | "mappings": [], 102 | "min": 0, 103 | "thresholds": { 104 | "mode": "absolute", 105 | "steps": [ 106 | { 107 | "color": "green", 108 | "value": null 109 | }, 110 | { 111 | "color": "red", 112 | "value": 80 113 | } 114 | ] 115 | }, 116 | "unit": "none" 117 | }, 118 | "overrides": [] 119 | }, 120 | "gridPos": { 121 | "h": 9, 122 | "w": 24, 123 | "x": 0, 124 | "y": 0 125 | }, 126 | "id": 7, 127 | "options": { 128 | "legend": { 129 | "calcs": [ 130 | "mean", 131 | "max", 132 | "min" 133 | ], 134 | "displayMode": "table", 135 | "placement": "bottom", 136 | "showLegend": true 137 | }, 138 | "tooltip": { 139 | "mode": "single", 140 | "sort": "none" 141 | } 142 | }, 143 | "pluginVersion": "11.3.1", 144 | "targets": [ 145 | { 146 | "alias": "", 147 | "application": { 148 | "filter": "" 149 | }, 150 | "datasource": { 151 | "type": "cloudwatch", 152 | "uid": "$datasource" 153 | }, 154 | "dimensions": { 155 | "GroupName": "$groupname" 156 | }, 157 | "expression": "", 158 | "functions": [], 159 | "group": { 160 | "filter": "" 161 | }, 162 | "host": { 163 | "filter": "" 164 | }, 165 | "id": "", 166 | "item": { 167 | "filter": "" 168 | }, 169 | "label": "", 170 | "matchExact": true, 171 | "metricEditorMode": 0, 172 | "metricName": "ApproximateTraceCount", 173 | "metricQueryType": 0, 174 | "mode": 0, 175 | "namespace": "AWS/X-Ray", 176 | "options": { 177 | "showDisabledItems": false 178 | }, 179 | "period": "", 180 | "refId": "A", 181 | "region": "$region", 182 | "statistic": "Average" 183 | } 184 | ], 185 | "title": "ApproximateTraceCount", 186 | "type": "timeseries" 187 | }, 188 | { 189 | "gridPos": { 190 | "h": 3, 191 | "w": 24, 192 | "x": 0, 193 | "y": 9 194 | }, 195 | "id": 2, 196 | "options": { 197 | "code": { 198 | "language": "plaintext", 199 | "showLineNumbers": false, 200 | "showMiniMap": false 201 | }, 202 | "content": "\n | \nAWS CloudWatch X-Ray documentation | \nInstalled from Grafana.com dashboards", 203 | "mode": "html" 204 | }, 205 | "pluginVersion": "11.3.1", 206 | "title": "Documentation", 207 | "type": "text" 208 | } 209 | ], 210 | "refresh": "", 211 | "schemaVersion": 40, 212 | "tags": [ 213 | "monitoringartist", 214 | "cloudwatch" 215 | ], 216 | "templating": { 217 | "list": [ 218 | { 219 | "current": {}, 220 | "includeAll": false, 221 | "label": "Datasource", 222 | "name": "datasource", 223 | "options": [], 224 | "query": "cloudwatch", 225 | "refresh": 1, 226 | "regex": "", 227 | "type": "datasource" 228 | }, 229 | { 230 | "current": {}, 231 | "datasource": { 232 | "type": "cloudwatch", 233 | "uid": "$datasource" 234 | }, 235 | "definition": "", 236 | "includeAll": false, 237 | "label": "Region", 238 | "name": "region", 239 | "options": [], 240 | "query": "regions()", 241 | "refresh": 1, 242 | "regex": "", 243 | "type": "query" 244 | }, 245 | { 246 | "current": {}, 247 | "datasource": { 248 | "type": "cloudwatch", 249 | "uid": "$datasource" 250 | }, 251 | "definition": "dimension_values($region, AWS/X-Ray, ApproximateTraceCount, GroupName)", 252 | "includeAll": false, 253 | "label": "GroupName", 254 | "name": "groupname", 255 | "options": [], 256 | "query": "dimension_values($region, AWS/X-Ray, ApproximateTraceCount, GroupName)", 257 | "refresh": 1, 258 | "regex": "", 259 | "sort": 1, 260 | "type": "query" 261 | } 262 | ] 263 | }, 264 | "time": { 265 | "from": "now-24h", 266 | "to": "now" 267 | }, 268 | "timepicker": {}, 269 | "timezone": "browser", 270 | "title": "AWS X-Ray", 271 | "uid": "awsxrayaa", 272 | "version": 2, 273 | "weekStart": "" 274 | } -------------------------------------------------------------------------------- /.github/workflows/standards.py: -------------------------------------------------------------------------------- 1 | import os 2 | import json 3 | import re 4 | 5 | validated_dashboards = [ 6 | "aws-api-gateway/aws-api-gateway.json", 7 | "aws-autoscaling/aws-autoscaling.json", 8 | "aws-billing/aws-billing.json", 9 | "aws-certificate-manager/aws-certificate-manager.json", 10 | "aws-cloudfront/aws-cloudfront.json", 11 | "aws-cloudwatch-synthetics/aws-cloudwatch-synthetics.json", 12 | "aws-cloudwatch-usage-metrics/aws-cloudwatch-usage-metrics.json", 13 | "aws-codebuild/aws-codebuild.json", 14 | "aws-cognito/aws-cognito.json", 15 | "aws-direct-connect/aws-direct-connect.json", 16 | "aws-dynamodb/aws-dynamodb.json", 17 | "aws-ebs/aws-ebs.json", 18 | "aws-ec2/aws-ec2.json", 19 | "aws-ecs/aws-ecs.json", 20 | "aws-efs/aws-efs.json", 21 | "aws-eks/aws-eks.json", 22 | "aws-elasticache/aws-elasticache-redis.json", 23 | "aws-elb/aws-elb-application-lb.json", 24 | "aws-elb/aws-elb-classic-lb.json", 25 | "aws-emr/aws-emr-hadoop-2.json", 26 | "aws-eventbridge/aws-eventbridge.json", 27 | "aws-fsx/aws-fsx.json", 28 | "aws-inspector/aws-inspector.json", 29 | "aws-kinesis/aws-kinesis.json", 30 | "aws-kinesis-firehose/aws-kinesis-firehose.json", 31 | "aws-lambda/aws-lambda.json", 32 | "aws-logs/aws-logs.json", 33 | "aws-network-firewall/aws-network-firewall.json", 34 | "aws-prometheus/aws-prometheus.json", 35 | "aws-rds/aws-rds.json", 36 | "aws-redshift/aws-redshift.json", 37 | "aws-route-53/aws-route-53.json", 38 | "aws-s3/aws-s3.json", 39 | "aws-ses/aws-ses.json", 40 | "aws-sns/aws-sns.json", 41 | "aws-sqs/aws-sqs.json", 42 | "aws-step-functions/aws-step-functions.json", 43 | "aws-storage-gateway/aws-storage-gateway.json", 44 | "aws-transfer-family/aws-transfer-family.json", 45 | "aws-transit-gateway/aws-transit-gateway.json", 46 | "aws-vpn/aws-vpn.json", 47 | "aws-waf/aws-waf.json", 48 | "aws-x-ray/aws-x-ray.json", 49 | ] 50 | 51 | standard_footer = " | \nAWS CloudWatch Transfer Family documentation | \nInstalled from Grafana.com dashboards" 52 | standard_footer = re.sub(r'https://docs.aws.amazon.com/.*\"', r'https://docs.aws.amazon.com/\"', standard_footer) 53 | standard_footer = re.sub(r'>AWS CloudWatch .* documentationAWS CloudWatch documentation 0: 88 | print('Dashboard ' + f + ' doesn\'t have empty __inputs') 89 | 90 | def validate_schema_version(f, dashboard): 91 | if dashboard["schemaVersion"] < 40: 92 | print('Dashboard ' + f + ' schemaVersion is lower than 40, migrate it') 93 | 94 | def validate_title(f, dashboard): 95 | if not dashboard['title'].startswith('AWS '): 96 | print('Dashboard ' + f + ' title doesn\'t start with \'AWS \' : ' + dashboard['title']) 97 | 98 | def validate_footer(f, dashboard): 99 | if 'rows' in dashboard: 100 | footer = dashboard['rows'][len(dashboard['rows']) - 1]['panels'][len(dashboard['rows'][len(dashboard['rows']) - 1]['panels']) - 1] 101 | if 'panels' in dashboard: 102 | footer = dashboard['panels'][len(dashboard['panels']) - 1] 103 | 104 | if footer['type'] != 'text': 105 | print('Dashboard ' + f + ' footer is not a text panel') 106 | if footer['title'] != 'Documentation': 107 | print('Dashboard ' + f + ' footer title is not \'Documentation\'') 108 | if 'mode' not in footer: 109 | if 'mode' in footer['options'] and footer['options']['mode'] != 'html': 110 | print('Dashboard ' + f + ' footer is not in html mode') 111 | footer_content = re.sub(r'https://docs.aws.amazon.com/.*\"', r'https://docs.aws.amazon.com/\"', footer['options']['content']) 112 | footer_content = re.sub(r'>AWS CloudWatch .* documentationAWS CloudWatch documentationAWS CloudWatch .* documentationAWS CloudWatch documentation | \nAWS CloudWatch VPN documentation | \nInstalled from Grafana.com dashboards\n", 357 | "mode": "html" 358 | }, 359 | "pluginVersion": "11.3.1", 360 | "title": "Documentation", 361 | "type": "text" 362 | } 363 | ], 364 | "refresh": "", 365 | "schemaVersion": 40, 366 | "tags": [ 367 | "monitoringartist", 368 | "cloudwatch" 369 | ], 370 | "templating": { 371 | "list": [ 372 | { 373 | "current": {}, 374 | "includeAll": false, 375 | "label": "Datasource", 376 | "name": "datasource", 377 | "options": [], 378 | "query": "cloudwatch", 379 | "refresh": 1, 380 | "regex": "", 381 | "type": "datasource" 382 | }, 383 | { 384 | "current": {}, 385 | "datasource": { 386 | "type": "cloudwatch", 387 | "uid": "$datasource" 388 | }, 389 | "includeAll": false, 390 | "label": "Region", 391 | "name": "region", 392 | "options": [], 393 | "query": "regions()", 394 | "refresh": 1, 395 | "regex": "", 396 | "type": "query" 397 | }, 398 | { 399 | "current": {}, 400 | "datasource": { 401 | "type": "cloudwatch", 402 | "uid": "$datasource" 403 | }, 404 | "includeAll": false, 405 | "label": "VpnId", 406 | "name": "vpnid", 407 | "options": [], 408 | "query": "dimension_values($region,AWS/VPN,TunnelState, VpnId)", 409 | "refresh": 1, 410 | "regex": "", 411 | "type": "query" 412 | } 413 | ] 414 | }, 415 | "time": { 416 | "from": "now-1h", 417 | "to": "now" 418 | }, 419 | "timepicker": {}, 420 | "timezone": "browser", 421 | "title": "AWS VPN", 422 | "uid": "de80tz3bybc3kb", 423 | "version": 3, 424 | "weekStart": "" 425 | } -------------------------------------------------------------------------------- /aws-billing/aws-billing.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [], 3 | "__elements": {}, 4 | "__requires": [ 5 | { 6 | "type": "datasource", 7 | "id": "cloudwatch", 8 | "name": "CloudWatch", 9 | "version": "1.0.0" 10 | }, 11 | { 12 | "type": "grafana", 13 | "id": "grafana", 14 | "name": "Grafana", 15 | "version": "11.3.1" 16 | }, 17 | { 18 | "type": "panel", 19 | "id": "text", 20 | "name": "Text", 21 | "version": "" 22 | }, 23 | { 24 | "type": "panel", 25 | "id": "timeseries", 26 | "name": "Time series", 27 | "version": "" 28 | } 29 | ], 30 | "annotations": { 31 | "list": [ 32 | { 33 | "builtIn": 1, 34 | "datasource": { 35 | "type": "datasource", 36 | "uid": "grafana" 37 | }, 38 | "enable": true, 39 | "hide": true, 40 | "iconColor": "rgba(0, 211, 255, 1)", 41 | "name": "Annotations & Alerts", 42 | "type": "dashboard" 43 | } 44 | ] 45 | }, 46 | "description": "Visualize estimated AWS charges per AWS resource (EC2, S3, ...)", 47 | "editable": false, 48 | "fiscalYearStartMonth": 0, 49 | "graphTooltip": 0, 50 | "id": null, 51 | "links": [], 52 | "panels": [ 53 | { 54 | "datasource": { 55 | "type": "cloudwatch", 56 | "uid": "$datasource" 57 | }, 58 | "fieldConfig": { 59 | "defaults": { 60 | "color": { 61 | "mode": "palette-classic" 62 | }, 63 | "custom": { 64 | "axisBorderShow": false, 65 | "axisCenteredZero": false, 66 | "axisColorMode": "text", 67 | "axisLabel": "", 68 | "axisPlacement": "auto", 69 | "barAlignment": 0, 70 | "barWidthFactor": 0.6, 71 | "drawStyle": "line", 72 | "fillOpacity": 15, 73 | "gradientMode": "none", 74 | "hideFrom": { 75 | "legend": false, 76 | "tooltip": false, 77 | "viz": false 78 | }, 79 | "insertNulls": false, 80 | "lineInterpolation": "linear", 81 | "lineWidth": 1, 82 | "pointSize": 5, 83 | "scaleDistribution": { 84 | "type": "linear" 85 | }, 86 | "showPoints": "never", 87 | "spanNulls": false, 88 | "stacking": { 89 | "group": "A", 90 | "mode": "none" 91 | }, 92 | "thresholdsStyle": { 93 | "mode": "off" 94 | } 95 | }, 96 | "mappings": [], 97 | "thresholds": { 98 | "mode": "absolute", 99 | "steps": [ 100 | { 101 | "color": "green", 102 | "value": null 103 | }, 104 | { 105 | "color": "red", 106 | "value": 80 107 | } 108 | ] 109 | }, 110 | "unit": "currencyUSD" 111 | }, 112 | "overrides": [] 113 | }, 114 | "gridPos": { 115 | "h": 15, 116 | "w": 24, 117 | "x": 0, 118 | "y": 0 119 | }, 120 | "id": 4, 121 | "options": { 122 | "legend": { 123 | "calcs": [ 124 | "min", 125 | "max", 126 | "mean", 127 | "last" 128 | ], 129 | "displayMode": "table", 130 | "placement": "bottom", 131 | "showLegend": true, 132 | "sortBy": "Last", 133 | "sortDesc": true 134 | }, 135 | "tooltip": { 136 | "maxHeight": 520, 137 | "mode": "multi", 138 | "sort": "none" 139 | } 140 | }, 141 | "pluginVersion": "11.3.1", 142 | "targets": [ 143 | { 144 | "datasource": { 145 | "type": "cloudwatch", 146 | "uid": "$datasource" 147 | }, 148 | "dimensions": { 149 | "Currency": "USD" 150 | }, 151 | "expression": "", 152 | "id": "", 153 | "label": "Total", 154 | "logGroups": [], 155 | "matchExact": true, 156 | "metricEditorMode": 0, 157 | "metricName": "EstimatedCharges", 158 | "metricQueryType": 0, 159 | "namespace": "AWS/Billing", 160 | "period": "", 161 | "queryMode": "Metrics", 162 | "refId": "A", 163 | "region": "us-east-1", 164 | "sqlExpression": "", 165 | "statistic": "Average" 166 | }, 167 | { 168 | "datasource": { 169 | "type": "cloudwatch", 170 | "uid": "$datasource" 171 | }, 172 | "dimensions": { 173 | "Currency": "USD", 174 | "ServiceName": "*" 175 | }, 176 | "expression": "", 177 | "hide": false, 178 | "id": "", 179 | "label": "${PROP('Dim.ServiceName')}", 180 | "logGroups": [], 181 | "matchExact": true, 182 | "metricEditorMode": 0, 183 | "metricName": "EstimatedCharges", 184 | "metricQueryType": 0, 185 | "namespace": "AWS/Billing", 186 | "period": "", 187 | "queryMode": "Metrics", 188 | "refId": "B", 189 | "region": "us-east-1", 190 | "sqlExpression": "", 191 | "statistic": "Average" 192 | } 193 | ], 194 | "title": "Estimated charges", 195 | "type": "timeseries" 196 | }, 197 | { 198 | "datasource": { 199 | "type": "cloudwatch", 200 | "uid": "$datasource" 201 | }, 202 | "fieldConfig": { 203 | "defaults": { 204 | "color": { 205 | "mode": "palette-classic" 206 | }, 207 | "custom": { 208 | "axisBorderShow": false, 209 | "axisCenteredZero": false, 210 | "axisColorMode": "text", 211 | "axisLabel": "", 212 | "axisPlacement": "auto", 213 | "barAlignment": 0, 214 | "barWidthFactor": 0.6, 215 | "drawStyle": "line", 216 | "fillOpacity": 15, 217 | "gradientMode": "none", 218 | "hideFrom": { 219 | "legend": false, 220 | "tooltip": false, 221 | "viz": false 222 | }, 223 | "insertNulls": false, 224 | "lineInterpolation": "linear", 225 | "lineWidth": 1, 226 | "pointSize": 5, 227 | "scaleDistribution": { 228 | "type": "linear" 229 | }, 230 | "showPoints": "never", 231 | "spanNulls": false, 232 | "stacking": { 233 | "group": "A", 234 | "mode": "none" 235 | }, 236 | "thresholdsStyle": { 237 | "mode": "off" 238 | } 239 | }, 240 | "mappings": [], 241 | "thresholds": { 242 | "mode": "absolute", 243 | "steps": [ 244 | { 245 | "color": "green", 246 | "value": null 247 | }, 248 | { 249 | "color": "red", 250 | "value": 80 251 | } 252 | ] 253 | }, 254 | "unit": "currencyUSD" 255 | }, 256 | "overrides": [] 257 | }, 258 | "gridPos": { 259 | "h": 10, 260 | "w": 24, 261 | "x": 0, 262 | "y": 15 263 | }, 264 | "id": 5, 265 | "options": { 266 | "legend": { 267 | "calcs": [ 268 | "min", 269 | "max", 270 | "mean", 271 | "last" 272 | ], 273 | "displayMode": "table", 274 | "placement": "bottom", 275 | "showLegend": true, 276 | "sortBy": "Last", 277 | "sortDesc": true 278 | }, 279 | "tooltip": { 280 | "maxHeight": 520, 281 | "mode": "multi", 282 | "sort": "none" 283 | } 284 | }, 285 | "pluginVersion": "11.3.1", 286 | "targets": [ 287 | { 288 | "datasource": { 289 | "type": "cloudwatch", 290 | "uid": "$datasource" 291 | }, 292 | "dimensions": { 293 | "Currency": "USD" 294 | }, 295 | "expression": "", 296 | "hide": true, 297 | "id": "m1", 298 | "label": "", 299 | "logGroups": [], 300 | "matchExact": true, 301 | "metricEditorMode": 0, 302 | "metricName": "EstimatedCharges", 303 | "metricQueryType": 0, 304 | "namespace": "AWS/Billing", 305 | "period": "86400", 306 | "queryMode": "Metrics", 307 | "refId": "A", 308 | "region": "us-east-1", 309 | "sqlExpression": "", 310 | "statistic": "Average" 311 | }, 312 | { 313 | "datasource": { 314 | "type": "cloudwatch", 315 | "uid": "$datasource" 316 | }, 317 | "dimensions": { 318 | "Currency": "USD", 319 | "ServiceName": "*" 320 | }, 321 | "expression": "RATE(m1) * PERIOD(m1)", 322 | "hide": true, 323 | "id": "m2", 324 | "label": "", 325 | "logGroups": [], 326 | "matchExact": true, 327 | "metricEditorMode": 1, 328 | "metricName": "EstimatedCharges", 329 | "metricQueryType": 0, 330 | "namespace": "AWS/Billing", 331 | "period": "86400", 332 | "queryMode": "Metrics", 333 | "refId": "B", 334 | "region": "us-east-1", 335 | "sqlExpression": "", 336 | "statistic": "Average" 337 | }, 338 | { 339 | "datasource": { 340 | "type": "cloudwatch", 341 | "uid": "$datasource" 342 | }, 343 | "dimensions": { 344 | "Currency": "USD", 345 | "ServiceName": "*" 346 | }, 347 | "expression": "IF(m2>0, m2)", 348 | "hide": false, 349 | "id": "", 350 | "label": "Total estimated daily charge", 351 | "logGroups": [], 352 | "matchExact": true, 353 | "metricEditorMode": 1, 354 | "metricName": "EstimatedCharges", 355 | "metricQueryType": 0, 356 | "namespace": "AWS/Billing", 357 | "period": "86400", 358 | "queryMode": "Metrics", 359 | "refId": "C", 360 | "region": "us-east-1", 361 | "sqlExpression": "", 362 | "statistic": "Average" 363 | } 364 | ], 365 | "title": "Estimated daily charges", 366 | "type": "timeseries" 367 | }, 368 | { 369 | "gridPos": { 370 | "h": 3, 371 | "w": 24, 372 | "x": 0, 373 | "y": 25 374 | }, 375 | "id": 6, 376 | "options": { 377 | "code": { 378 | "language": "plaintext", 379 | "showLineNumbers": false, 380 | "showMiniMap": false 381 | }, 382 | "content": " | \nAWS CloudWatch billing documentation | \nInstalled from Grafana.com dashboards", 383 | "mode": "html" 384 | }, 385 | "pluginVersion": "11.3.1", 386 | "title": "Documentation", 387 | "type": "text" 388 | } 389 | ], 390 | "refresh": "", 391 | "schemaVersion": 40, 392 | "tags": [ 393 | "monitoringartist", 394 | "cloudwatch" 395 | ], 396 | "templating": { 397 | "list": [ 398 | { 399 | "current": {}, 400 | "includeAll": false, 401 | "label": "Datasource", 402 | "name": "datasource", 403 | "options": [], 404 | "query": "cloudwatch", 405 | "refresh": 1, 406 | "regex": "", 407 | "type": "datasource" 408 | } 409 | ] 410 | }, 411 | "time": { 412 | "from": "now-30d", 413 | "to": "now" 414 | }, 415 | "timepicker": {}, 416 | "timezone": "browser", 417 | "title": "AWS Billing", 418 | "uid": "AWSBillig", 419 | "version": 7, 420 | "weekStart": "" 421 | } -------------------------------------------------------------------------------- /aws-inspector/aws-inspector.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [], 3 | "__elements": {}, 4 | "__requires": [ 5 | { 6 | "type": "datasource", 7 | "id": "cloudwatch", 8 | "name": "CloudWatch", 9 | "version": "1.0.0" 10 | }, 11 | { 12 | "type": "grafana", 13 | "id": "grafana", 14 | "name": "Grafana", 15 | "version": "11.3.1" 16 | }, 17 | { 18 | "type": "panel", 19 | "id": "text", 20 | "name": "Text", 21 | "version": "" 22 | }, 23 | { 24 | "type": "panel", 25 | "id": "timeseries", 26 | "name": "Time series", 27 | "version": "" 28 | } 29 | ], 30 | "annotations": { 31 | "list": [ 32 | { 33 | "builtIn": 1, 34 | "datasource": { 35 | "type": "datasource", 36 | "uid": "grafana" 37 | }, 38 | "enable": true, 39 | "hide": true, 40 | "iconColor": "rgba(0, 211, 255, 1)", 41 | "name": "Annotations & Alerts", 42 | "type": "dashboard" 43 | } 44 | ] 45 | }, 46 | "description": "Visualize AWS Inspector metrics", 47 | "editable": false, 48 | "fiscalYearStartMonth": 0, 49 | "graphTooltip": 0, 50 | "id": null, 51 | "links": [], 52 | "panels": [ 53 | { 54 | "datasource": { 55 | "uid": "$datasource" 56 | }, 57 | "description": "", 58 | "fieldConfig": { 59 | "defaults": { 60 | "color": { 61 | "mode": "palette-classic" 62 | }, 63 | "custom": { 64 | "axisBorderShow": false, 65 | "axisCenteredZero": false, 66 | "axisColorMode": "text", 67 | "axisLabel": "", 68 | "axisPlacement": "auto", 69 | "barAlignment": 0, 70 | "barWidthFactor": 0.6, 71 | "drawStyle": "line", 72 | "fillOpacity": 10, 73 | "gradientMode": "none", 74 | "hideFrom": { 75 | "legend": false, 76 | "tooltip": false, 77 | "viz": false 78 | }, 79 | "insertNulls": false, 80 | "lineInterpolation": "linear", 81 | "lineWidth": 1, 82 | "pointSize": 5, 83 | "scaleDistribution": { 84 | "type": "linear" 85 | }, 86 | "showPoints": "never", 87 | "spanNulls": true, 88 | "stacking": { 89 | "group": "A", 90 | "mode": "none" 91 | }, 92 | "thresholdsStyle": { 93 | "mode": "off" 94 | } 95 | }, 96 | "mappings": [], 97 | "min": 0, 98 | "thresholds": { 99 | "mode": "absolute", 100 | "steps": [ 101 | { 102 | "color": "green", 103 | "value": null 104 | }, 105 | { 106 | "color": "red", 107 | "value": 80 108 | } 109 | ] 110 | }, 111 | "unit": "none" 112 | }, 113 | "overrides": [] 114 | }, 115 | "gridPos": { 116 | "h": 9, 117 | "w": 24, 118 | "x": 0, 119 | "y": 0 120 | }, 121 | "id": 7, 122 | "options": { 123 | "alertThreshold": false, 124 | "legend": { 125 | "calcs": [ 126 | "mean", 127 | "max", 128 | "min" 129 | ], 130 | "displayMode": "table", 131 | "placement": "bottom", 132 | "showLegend": true 133 | }, 134 | "tooltip": { 135 | "mode": "multi", 136 | "sort": "none" 137 | } 138 | }, 139 | "pluginVersion": "11.3.1", 140 | "targets": [ 141 | { 142 | "alias": "", 143 | "datasource": { 144 | "type": "cloudwatch", 145 | "uid": "$datasource" 146 | }, 147 | "dimensions": { 148 | "AssessmentTargetArn": "*", 149 | "AssessmentTargetName": "$AssessmentTargetName" 150 | }, 151 | "expression": "", 152 | "id": "", 153 | "matchExact": true, 154 | "metricEditorMode": 0, 155 | "metricName": "TotalFindings", 156 | "metricQueryType": 0, 157 | "namespace": "AWS/Inspector", 158 | "period": "", 159 | "refId": "A", 160 | "region": "$region", 161 | "statistic": "Sum" 162 | } 163 | ], 164 | "title": "TotalFindings", 165 | "type": "timeseries" 166 | }, 167 | { 168 | "datasource": { 169 | "uid": "$datasource" 170 | }, 171 | "description": "", 172 | "fieldConfig": { 173 | "defaults": { 174 | "color": { 175 | "mode": "palette-classic" 176 | }, 177 | "custom": { 178 | "axisBorderShow": false, 179 | "axisCenteredZero": false, 180 | "axisColorMode": "text", 181 | "axisLabel": "", 182 | "axisPlacement": "auto", 183 | "barAlignment": 0, 184 | "barWidthFactor": 0.6, 185 | "drawStyle": "line", 186 | "fillOpacity": 10, 187 | "gradientMode": "none", 188 | "hideFrom": { 189 | "legend": false, 190 | "tooltip": false, 191 | "viz": false 192 | }, 193 | "insertNulls": false, 194 | "lineInterpolation": "linear", 195 | "lineWidth": 1, 196 | "pointSize": 5, 197 | "scaleDistribution": { 198 | "type": "linear" 199 | }, 200 | "showPoints": "never", 201 | "spanNulls": true, 202 | "stacking": { 203 | "group": "A", 204 | "mode": "none" 205 | }, 206 | "thresholdsStyle": { 207 | "mode": "off" 208 | } 209 | }, 210 | "mappings": [], 211 | "min": 0, 212 | "thresholds": { 213 | "mode": "absolute", 214 | "steps": [ 215 | { 216 | "color": "green", 217 | "value": null 218 | }, 219 | { 220 | "color": "red", 221 | "value": 80 222 | } 223 | ] 224 | }, 225 | "unit": "none" 226 | }, 227 | "overrides": [ 228 | { 229 | "matcher": { 230 | "id": "byName", 231 | "options": "TotalHealthyAgents" 232 | }, 233 | "properties": [ 234 | { 235 | "id": "custom.axisPlacement", 236 | "value": "right" 237 | } 238 | ] 239 | } 240 | ] 241 | }, 242 | "gridPos": { 243 | "h": 9, 244 | "w": 24, 245 | "x": 0, 246 | "y": 9 247 | }, 248 | "id": 6, 249 | "options": { 250 | "alertThreshold": false, 251 | "legend": { 252 | "calcs": [ 253 | "mean", 254 | "max", 255 | "min" 256 | ], 257 | "displayMode": "table", 258 | "placement": "bottom", 259 | "showLegend": true 260 | }, 261 | "tooltip": { 262 | "mode": "multi", 263 | "sort": "none" 264 | } 265 | }, 266 | "pluginVersion": "11.3.1", 267 | "targets": [ 268 | { 269 | "alias": "", 270 | "datasource": { 271 | "type": "cloudwatch", 272 | "uid": "$datasource" 273 | }, 274 | "dimensions": { 275 | "AssessmentTargetArn": "*", 276 | "AssessmentTargetName": "$AssessmentTargetName" 277 | }, 278 | "expression": "", 279 | "hide": false, 280 | "id": "", 281 | "matchExact": true, 282 | "metricEditorMode": 0, 283 | "metricName": "TotalMatchingAgents", 284 | "metricQueryType": 0, 285 | "namespace": "AWS/Inspector", 286 | "period": "", 287 | "refId": "B", 288 | "region": "$region", 289 | "statistic": "Average" 290 | }, 291 | { 292 | "alias": "", 293 | "datasource": { 294 | "uid": "$datasource" 295 | }, 296 | "dimensions": { 297 | "AssessmentTargetArn": "*", 298 | "AssessmentTargetName": "$AssessmentTargetName" 299 | }, 300 | "expression": "", 301 | "id": "", 302 | "matchExact": true, 303 | "metricEditorMode": 0, 304 | "metricName": "TotalHealthyAgents", 305 | "metricQueryType": 0, 306 | "namespace": "AWS/Inspector", 307 | "period": "", 308 | "refId": "A", 309 | "region": "$region", 310 | "statistic": "Average" 311 | } 312 | ], 313 | "title": "TotalMatchingAgents / TotalHealthyAgents", 314 | "type": "timeseries" 315 | }, 316 | { 317 | "datasource": { 318 | "type": "cloudwatch", 319 | "uid": "$datasource" 320 | }, 321 | "description": "", 322 | "fieldConfig": { 323 | "defaults": { 324 | "color": { 325 | "mode": "palette-classic" 326 | }, 327 | "custom": { 328 | "axisBorderShow": false, 329 | "axisCenteredZero": false, 330 | "axisColorMode": "text", 331 | "axisLabel": "", 332 | "axisPlacement": "auto", 333 | "barAlignment": 0, 334 | "barWidthFactor": 0.6, 335 | "drawStyle": "line", 336 | "fillOpacity": 10, 337 | "gradientMode": "none", 338 | "hideFrom": { 339 | "legend": false, 340 | "tooltip": false, 341 | "viz": false 342 | }, 343 | "insertNulls": false, 344 | "lineInterpolation": "linear", 345 | "lineWidth": 1, 346 | "pointSize": 5, 347 | "scaleDistribution": { 348 | "type": "linear" 349 | }, 350 | "showPoints": "never", 351 | "spanNulls": true, 352 | "stacking": { 353 | "group": "A", 354 | "mode": "none" 355 | }, 356 | "thresholdsStyle": { 357 | "mode": "off" 358 | } 359 | }, 360 | "mappings": [], 361 | "min": 0, 362 | "thresholds": { 363 | "mode": "absolute", 364 | "steps": [ 365 | { 366 | "color": "green", 367 | "value": null 368 | }, 369 | { 370 | "color": "red", 371 | "value": 80 372 | } 373 | ] 374 | }, 375 | "unit": "none" 376 | }, 377 | "overrides": [] 378 | }, 379 | "gridPos": { 380 | "h": 9, 381 | "w": 24, 382 | "x": 0, 383 | "y": 18 384 | }, 385 | "id": 8, 386 | "options": { 387 | "alertThreshold": false, 388 | "legend": { 389 | "calcs": [ 390 | "mean", 391 | "max", 392 | "min" 393 | ], 394 | "displayMode": "table", 395 | "placement": "bottom", 396 | "showLegend": true 397 | }, 398 | "tooltip": { 399 | "mode": "multi", 400 | "sort": "none" 401 | } 402 | }, 403 | "pluginVersion": "11.3.1", 404 | "targets": [ 405 | { 406 | "alias": "", 407 | "datasource": { 408 | "uid": "$datasource" 409 | }, 410 | "dimensions": { 411 | "AssessmentTargetArn": "*", 412 | "AssessmentTargetName": "$AssessmentTargetName" 413 | }, 414 | "expression": "", 415 | "id": "", 416 | "matchExact": true, 417 | "metricEditorMode": 0, 418 | "metricName": "TotalAssessmentRuns", 419 | "metricQueryType": 0, 420 | "namespace": "AWS/Inspector", 421 | "period": "", 422 | "refId": "A", 423 | "region": "$region", 424 | "statistic": "Sum" 425 | } 426 | ], 427 | "title": "TotalAssessmentRuns", 428 | "type": "timeseries" 429 | }, 430 | { 431 | "gridPos": { 432 | "h": 3, 433 | "w": 24, 434 | "x": 0, 435 | "y": 27 436 | }, 437 | "id": 5, 438 | "options": { 439 | "code": { 440 | "language": "plaintext", 441 | "showLineNumbers": false, 442 | "showMiniMap": false 443 | }, 444 | "content": " | \nAWS CloudWatch Inspector documentation | \nInstalled from Grafana.com dashboards\n", 445 | "mode": "html" 446 | }, 447 | "pluginVersion": "11.3.1", 448 | "title": "Documentation", 449 | "type": "text" 450 | } 451 | ], 452 | "refresh": "", 453 | "schemaVersion": 40, 454 | "tags": [ 455 | "monitoringartist", 456 | "cloudwatch" 457 | ], 458 | "templating": { 459 | "list": [ 460 | { 461 | "current": {}, 462 | "includeAll": false, 463 | "label": "Datasource", 464 | "name": "datasource", 465 | "options": [], 466 | "query": "cloudwatch", 467 | "refresh": 1, 468 | "regex": "", 469 | "type": "datasource" 470 | }, 471 | { 472 | "current": {}, 473 | "datasource": { 474 | "type": "cloudwatch", 475 | "uid": "$datasource" 476 | }, 477 | "definition": "regions()", 478 | "includeAll": false, 479 | "label": "Region", 480 | "name": "region", 481 | "options": [], 482 | "query": "regions()", 483 | "refresh": 1, 484 | "regex": "", 485 | "type": "query" 486 | }, 487 | { 488 | "allValue": "*", 489 | "current": {}, 490 | "datasource": { 491 | "type": "cloudwatch", 492 | "uid": "$datasource" 493 | }, 494 | "definition": "dimension_values($region,AWS/Inspector,TotalAssessmentRuns,AssessmentTargetName)", 495 | "includeAll": true, 496 | "label": "AssessmentTargetName", 497 | "name": "AssessmentTargetName", 498 | "options": [], 499 | "query": "dimension_values($region,AWS/Inspector,TotalAssessmentRuns,AssessmentTargetName)", 500 | "refresh": 1, 501 | "regex": "", 502 | "sort": 1, 503 | "type": "query" 504 | } 505 | ] 506 | }, 507 | "time": { 508 | "from": "now-90d", 509 | "to": "now" 510 | }, 511 | "timepicker": {}, 512 | "timezone": "browser", 513 | "title": "AWS Inspector", 514 | "uid": "AWSInspec", 515 | "version": 2, 516 | "weekStart": "" 517 | } -------------------------------------------------------------------------------- /aws-transfer-family/aws-transfer-family.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [], 3 | "__elements": {}, 4 | "__requires": [ 5 | { 6 | "type": "datasource", 7 | "id": "cloudwatch", 8 | "name": "CloudWatch", 9 | "version": "1.0.0" 10 | }, 11 | { 12 | "type": "grafana", 13 | "id": "grafana", 14 | "name": "Grafana", 15 | "version": "11.3.1" 16 | }, 17 | { 18 | "type": "panel", 19 | "id": "text", 20 | "name": "Text", 21 | "version": "" 22 | }, 23 | { 24 | "type": "panel", 25 | "id": "timeseries", 26 | "name": "Time series", 27 | "version": "" 28 | } 29 | ], 30 | "annotations": { 31 | "list": [ 32 | { 33 | "builtIn": 1, 34 | "datasource": { 35 | "type": "datasource", 36 | "uid": "grafana" 37 | }, 38 | "enable": true, 39 | "hide": true, 40 | "iconColor": "rgba(0, 211, 255, 1)", 41 | "name": "Annotations & Alerts", 42 | "target": { 43 | "limit": 100, 44 | "matchAny": false, 45 | "tags": [], 46 | "type": "dashboard" 47 | }, 48 | "type": "dashboard" 49 | } 50 | ] 51 | }, 52 | "description": "Visualize AWS Transfer Family metrics", 53 | "editable": false, 54 | "fiscalYearStartMonth": 0, 55 | "graphTooltip": 0, 56 | "id": null, 57 | "links": [], 58 | "panels": [ 59 | { 60 | "datasource": { 61 | "type": "cloudwatch", 62 | "uid": "$datasource" 63 | }, 64 | "fieldConfig": { 65 | "defaults": { 66 | "color": { 67 | "mode": "palette-classic" 68 | }, 69 | "custom": { 70 | "axisBorderShow": false, 71 | "axisCenteredZero": false, 72 | "axisColorMode": "text", 73 | "axisLabel": "", 74 | "axisPlacement": "auto", 75 | "barAlignment": 0, 76 | "barWidthFactor": 0.6, 77 | "drawStyle": "line", 78 | "fillOpacity": 20, 79 | "gradientMode": "none", 80 | "hideFrom": { 81 | "legend": false, 82 | "tooltip": false, 83 | "viz": false 84 | }, 85 | "insertNulls": false, 86 | "lineInterpolation": "linear", 87 | "lineWidth": 1, 88 | "pointSize": 5, 89 | "scaleDistribution": { 90 | "type": "linear" 91 | }, 92 | "showPoints": "never", 93 | "spanNulls": true, 94 | "stacking": { 95 | "group": "A", 96 | "mode": "none" 97 | }, 98 | "thresholdsStyle": { 99 | "mode": "off" 100 | } 101 | }, 102 | "links": [], 103 | "mappings": [], 104 | "min": 0, 105 | "thresholds": { 106 | "mode": "absolute", 107 | "steps": [ 108 | { 109 | "color": "green", 110 | "value": null 111 | }, 112 | { 113 | "color": "red", 114 | "value": 80 115 | } 116 | ] 117 | }, 118 | "unit": "bytes" 119 | }, 120 | "overrides": [ 121 | { 122 | "matcher": { 123 | "id": "byName", 124 | "options": "BytesOut" 125 | }, 126 | "properties": [ 127 | { 128 | "id": "custom.axisPlacement", 129 | "value": "right" 130 | } 131 | ] 132 | } 133 | ] 134 | }, 135 | "gridPos": { 136 | "h": 7, 137 | "w": 24, 138 | "x": 0, 139 | "y": 0 140 | }, 141 | "id": 16, 142 | "options": { 143 | "legend": { 144 | "calcs": [ 145 | "min", 146 | "max", 147 | "mean" 148 | ], 149 | "displayMode": "table", 150 | "placement": "bottom", 151 | "showLegend": true 152 | }, 153 | "tooltip": { 154 | "mode": "multi", 155 | "sort": "none" 156 | } 157 | }, 158 | "pluginVersion": "11.3.1", 159 | "targets": [ 160 | { 161 | "alias": "", 162 | "application": { 163 | "filter": "" 164 | }, 165 | "datasource": { 166 | "type": "cloudwatch", 167 | "uid": "$datasource" 168 | }, 169 | "dimensions": { 170 | "ServerId": "$ServerId" 171 | }, 172 | "expression": "", 173 | "functions": [], 174 | "group": { 175 | "filter": "" 176 | }, 177 | "host": { 178 | "filter": "" 179 | }, 180 | "id": "", 181 | "item": { 182 | "filter": "" 183 | }, 184 | "label": "", 185 | "matchExact": true, 186 | "metricEditorMode": 0, 187 | "metricName": "BytesIn", 188 | "metricQueryType": 0, 189 | "mode": 0, 190 | "namespace": "AWS/Transfer", 191 | "options": { 192 | "showDisabledItems": false 193 | }, 194 | "period": "", 195 | "queryMode": "Metrics", 196 | "refId": "A", 197 | "region": "$region", 198 | "sqlExpression": "", 199 | "statistic": "Average" 200 | }, 201 | { 202 | "alias": "", 203 | "application": { 204 | "filter": "" 205 | }, 206 | "datasource": { 207 | "uid": "$datasource" 208 | }, 209 | "dimensions": { 210 | "ServerId": "$ServerId" 211 | }, 212 | "expression": "", 213 | "functions": [], 214 | "group": { 215 | "filter": "" 216 | }, 217 | "hide": false, 218 | "host": { 219 | "filter": "" 220 | }, 221 | "id": "", 222 | "item": { 223 | "filter": "" 224 | }, 225 | "label": "", 226 | "matchExact": true, 227 | "metricEditorMode": 0, 228 | "metricName": "BytesOut", 229 | "metricQueryType": 0, 230 | "mode": 0, 231 | "namespace": "AWS/Transfer", 232 | "options": { 233 | "showDisabledItems": false 234 | }, 235 | "period": "", 236 | "queryMode": "Metrics", 237 | "refId": "B", 238 | "region": "$region", 239 | "sqlExpression": "", 240 | "statistic": "Average" 241 | } 242 | ], 243 | "title": "BytesIn/BytesOut", 244 | "type": "timeseries" 245 | }, 246 | { 247 | "datasource": { 248 | "type": "cloudwatch", 249 | "uid": "$datasource" 250 | }, 251 | "fieldConfig": { 252 | "defaults": { 253 | "color": { 254 | "mode": "palette-classic" 255 | }, 256 | "custom": { 257 | "axisBorderShow": false, 258 | "axisCenteredZero": false, 259 | "axisColorMode": "text", 260 | "axisLabel": "", 261 | "axisPlacement": "auto", 262 | "barAlignment": 0, 263 | "barWidthFactor": 0.6, 264 | "drawStyle": "line", 265 | "fillOpacity": 20, 266 | "gradientMode": "none", 267 | "hideFrom": { 268 | "legend": false, 269 | "tooltip": false, 270 | "viz": false 271 | }, 272 | "insertNulls": false, 273 | "lineInterpolation": "linear", 274 | "lineWidth": 1, 275 | "pointSize": 5, 276 | "scaleDistribution": { 277 | "type": "linear" 278 | }, 279 | "showPoints": "never", 280 | "spanNulls": true, 281 | "stacking": { 282 | "group": "A", 283 | "mode": "none" 284 | }, 285 | "thresholdsStyle": { 286 | "mode": "off" 287 | } 288 | }, 289 | "links": [], 290 | "mappings": [], 291 | "min": 0, 292 | "thresholds": { 293 | "mode": "absolute", 294 | "steps": [ 295 | { 296 | "color": "green", 297 | "value": null 298 | }, 299 | { 300 | "color": "red", 301 | "value": 80 302 | } 303 | ] 304 | }, 305 | "unit": "none" 306 | }, 307 | "overrides": [ 308 | { 309 | "matcher": { 310 | "id": "byName", 311 | "options": "FilesOut" 312 | }, 313 | "properties": [ 314 | { 315 | "id": "custom.axisPlacement", 316 | "value": "right" 317 | } 318 | ] 319 | } 320 | ] 321 | }, 322 | "gridPos": { 323 | "h": 7, 324 | "w": 24, 325 | "x": 0, 326 | "y": 7 327 | }, 328 | "id": 17, 329 | "options": { 330 | "legend": { 331 | "calcs": [ 332 | "min", 333 | "max", 334 | "mean", 335 | "sum" 336 | ], 337 | "displayMode": "table", 338 | "placement": "bottom", 339 | "showLegend": true 340 | }, 341 | "tooltip": { 342 | "mode": "multi", 343 | "sort": "none" 344 | } 345 | }, 346 | "pluginVersion": "11.3.1", 347 | "targets": [ 348 | { 349 | "alias": "", 350 | "application": { 351 | "filter": "" 352 | }, 353 | "datasource": { 354 | "uid": "$datasource" 355 | }, 356 | "dimensions": { 357 | "ServerId": "$ServerId" 358 | }, 359 | "expression": "", 360 | "functions": [], 361 | "group": { 362 | "filter": "" 363 | }, 364 | "host": { 365 | "filter": "" 366 | }, 367 | "id": "", 368 | "item": { 369 | "filter": "" 370 | }, 371 | "label": "", 372 | "matchExact": true, 373 | "metricEditorMode": 0, 374 | "metricName": "FilesIn", 375 | "metricQueryType": 0, 376 | "mode": 0, 377 | "namespace": "AWS/Transfer", 378 | "options": { 379 | "showDisabledItems": false 380 | }, 381 | "period": "", 382 | "queryMode": "Metrics", 383 | "refId": "A", 384 | "region": "$region", 385 | "sqlExpression": "", 386 | "statistic": "Sum" 387 | }, 388 | { 389 | "alias": "", 390 | "application": { 391 | "filter": "" 392 | }, 393 | "datasource": { 394 | "type": "cloudwatch", 395 | "uid": "$datasource" 396 | }, 397 | "dimensions": { 398 | "ServerId": "$ServerId" 399 | }, 400 | "expression": "", 401 | "functions": [], 402 | "group": { 403 | "filter": "" 404 | }, 405 | "hide": false, 406 | "host": { 407 | "filter": "" 408 | }, 409 | "id": "", 410 | "item": { 411 | "filter": "" 412 | }, 413 | "label": "", 414 | "matchExact": true, 415 | "metricEditorMode": 0, 416 | "metricName": "FilesOut", 417 | "metricQueryType": 0, 418 | "mode": 0, 419 | "namespace": "AWS/Transfer", 420 | "options": { 421 | "showDisabledItems": false 422 | }, 423 | "period": "", 424 | "queryMode": "Metrics", 425 | "refId": "B", 426 | "region": "$region", 427 | "sqlExpression": "", 428 | "statistic": "Sum" 429 | } 430 | ], 431 | "title": "FilesIn/FilesOut", 432 | "type": "timeseries" 433 | }, 434 | { 435 | "gridPos": { 436 | "h": 3, 437 | "w": 24, 438 | "x": 0, 439 | "y": 14 440 | }, 441 | "id": 2, 442 | "options": { 443 | "code": { 444 | "language": "plaintext", 445 | "showLineNumbers": false, 446 | "showMiniMap": false 447 | }, 448 | "content": " | \nAWS CloudWatch Transfer Family documentation | \nInstalled from Grafana.com dashboards", 449 | "mode": "html" 450 | }, 451 | "pluginVersion": "11.3.1", 452 | "title": "Documentation", 453 | "type": "text" 454 | } 455 | ], 456 | "refresh": "", 457 | "schemaVersion": 40, 458 | "tags": [ 459 | "monitoringartist", 460 | "cloudwatch" 461 | ], 462 | "templating": { 463 | "list": [ 464 | { 465 | "current": {}, 466 | "includeAll": false, 467 | "label": "Datasource", 468 | "name": "datasource", 469 | "options": [], 470 | "query": "cloudwatch", 471 | "refresh": 1, 472 | "regex": "", 473 | "type": "datasource" 474 | }, 475 | { 476 | "current": {}, 477 | "datasource": { 478 | "uid": "$datasource" 479 | }, 480 | "definition": "", 481 | "includeAll": false, 482 | "label": "Region", 483 | "name": "region", 484 | "options": [], 485 | "query": "regions()", 486 | "refresh": 1, 487 | "regex": "", 488 | "type": "query" 489 | }, 490 | { 491 | "allValue": "*", 492 | "current": {}, 493 | "datasource": { 494 | "type": "cloudwatch", 495 | "uid": "$datasource" 496 | }, 497 | "definition": "", 498 | "includeAll": true, 499 | "label": "ServerId", 500 | "name": "ServerId", 501 | "options": [], 502 | "query": { 503 | "attributeName": "", 504 | "dimensionFilters": {}, 505 | "dimensionKey": "ServerId", 506 | "ec2Filters": {}, 507 | "instanceID": "", 508 | "metricName": "BytesIn", 509 | "namespace": "AWS/Transfer", 510 | "queryType": "dimensionValues", 511 | "refId": "CloudWatchVariableQueryEditor-VariableQuery", 512 | "region": "$region", 513 | "resourceType": "", 514 | "tags": {} 515 | }, 516 | "refresh": 1, 517 | "regex": "", 518 | "sort": 1, 519 | "type": "query" 520 | } 521 | ] 522 | }, 523 | "time": { 524 | "from": "now-1h", 525 | "to": "now" 526 | }, 527 | "timepicker": {}, 528 | "timezone": "browser", 529 | "title": "AWS Transfer Family", 530 | "uid": "vzYZtWGIz", 531 | "version": 10, 532 | "weekStart": "" 533 | } -------------------------------------------------------------------------------- /aws-autoscaling/aws-autoscaling.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [], 3 | "__elements": {}, 4 | "__requires": [ 5 | { 6 | "type": "datasource", 7 | "id": "cloudwatch", 8 | "name": "CloudWatch", 9 | "version": "1.0.0" 10 | }, 11 | { 12 | "type": "grafana", 13 | "id": "grafana", 14 | "name": "Grafana", 15 | "version": "11.3.1" 16 | }, 17 | { 18 | "type": "panel", 19 | "id": "text", 20 | "name": "Text", 21 | "version": "" 22 | }, 23 | { 24 | "type": "panel", 25 | "id": "timeseries", 26 | "name": "Time series", 27 | "version": "" 28 | } 29 | ], 30 | "annotations": { 31 | "list": [ 32 | { 33 | "builtIn": 1, 34 | "datasource": { 35 | "type": "grafana", 36 | "uid": "-- Grafana --" 37 | }, 38 | "enable": true, 39 | "hide": true, 40 | "iconColor": "rgba(0, 211, 255, 1)", 41 | "name": "Annotations & Alerts", 42 | "type": "dashboard" 43 | } 44 | ] 45 | }, 46 | "description": "Visualize AWS Auto Scaling metrics", 47 | "editable": false, 48 | "fiscalYearStartMonth": 0, 49 | "graphTooltip": 0, 50 | "id": null, 51 | "links": [], 52 | "panels": [ 53 | { 54 | "datasource": { 55 | "uid": "$datasource" 56 | }, 57 | "fieldConfig": { 58 | "defaults": { 59 | "color": { 60 | "mode": "palette-classic" 61 | }, 62 | "custom": { 63 | "axisBorderShow": false, 64 | "axisCenteredZero": false, 65 | "axisColorMode": "text", 66 | "axisLabel": "", 67 | "axisPlacement": "auto", 68 | "barAlignment": 0, 69 | "barWidthFactor": 0.6, 70 | "drawStyle": "line", 71 | "fillOpacity": 0, 72 | "gradientMode": "none", 73 | "hideFrom": { 74 | "legend": false, 75 | "tooltip": false, 76 | "viz": false 77 | }, 78 | "insertNulls": false, 79 | "lineInterpolation": "linear", 80 | "lineWidth": 1, 81 | "pointSize": 5, 82 | "scaleDistribution": { 83 | "type": "linear" 84 | }, 85 | "showPoints": "never", 86 | "spanNulls": true, 87 | "stacking": { 88 | "group": "A", 89 | "mode": "none" 90 | }, 91 | "thresholdsStyle": { 92 | "mode": "off" 93 | } 94 | }, 95 | "mappings": [], 96 | "min": 0, 97 | "thresholds": { 98 | "mode": "absolute", 99 | "steps": [ 100 | { 101 | "color": "green", 102 | "value": null 103 | }, 104 | { 105 | "color": "red", 106 | "value": 80 107 | } 108 | ] 109 | }, 110 | "unit": "none" 111 | }, 112 | "overrides": [ 113 | { 114 | "matcher": { 115 | "id": "byName", 116 | "options": "VolumeIdleTime_Average" 117 | }, 118 | "properties": [ 119 | { 120 | "id": "unit", 121 | "value": "s" 122 | }, 123 | { 124 | "id": "custom.axisPlacement", 125 | "value": "right" 126 | }, 127 | { 128 | "id": "custom.axisPlacement", 129 | "value": "hidden" 130 | } 131 | ] 132 | } 133 | ] 134 | }, 135 | "gridPos": { 136 | "h": 12, 137 | "w": 24, 138 | "x": 0, 139 | "y": 0 140 | }, 141 | "id": 16, 142 | "options": { 143 | "legend": { 144 | "calcs": [ 145 | "mean", 146 | "max", 147 | "min" 148 | ], 149 | "displayMode": "table", 150 | "placement": "bottom", 151 | "showLegend": true 152 | }, 153 | "tooltip": { 154 | "mode": "multi", 155 | "sort": "none" 156 | } 157 | }, 158 | "pluginVersion": "11.3.1", 159 | "targets": [ 160 | { 161 | "alias": "", 162 | "application": { 163 | "filter": "" 164 | }, 165 | "datasource": { 166 | "type": "cloudwatch", 167 | "uid": "$datasource" 168 | }, 169 | "dimensions": { 170 | "AutoScalingGroupName": "$autoscalinggroupname" 171 | }, 172 | "functions": [], 173 | "group": { 174 | "filter": "" 175 | }, 176 | "host": { 177 | "filter": "" 178 | }, 179 | "item": { 180 | "filter": "" 181 | }, 182 | "label": "", 183 | "metricEditorMode": 0, 184 | "metricName": "GroupTotalInstances", 185 | "metricQueryType": 0, 186 | "mode": 0, 187 | "namespace": "AWS/AutoScaling", 188 | "options": { 189 | "showDisabledItems": false 190 | }, 191 | "period": "", 192 | "refId": "A", 193 | "region": "$region", 194 | "statistic": "Average" 195 | }, 196 | { 197 | "alias": "", 198 | "application": { 199 | "filter": "" 200 | }, 201 | "datasource": { 202 | "uid": "$datasource" 203 | }, 204 | "dimensions": { 205 | "AutoScalingGroupName": "$autoscalinggroupname" 206 | }, 207 | "functions": [], 208 | "group": { 209 | "filter": "" 210 | }, 211 | "host": { 212 | "filter": "" 213 | }, 214 | "item": { 215 | "filter": "" 216 | }, 217 | "label": "", 218 | "metricEditorMode": 0, 219 | "metricName": "GroupDesiredCapacity", 220 | "metricQueryType": 0, 221 | "mode": 0, 222 | "namespace": "AWS/AutoScaling", 223 | "options": { 224 | "showDisabledItems": false 225 | }, 226 | "period": "", 227 | "refId": "B", 228 | "region": "$region", 229 | "statistic": "Average" 230 | }, 231 | { 232 | "alias": "", 233 | "application": { 234 | "filter": "" 235 | }, 236 | "datasource": { 237 | "type": "cloudwatch", 238 | "uid": "$datasource" 239 | }, 240 | "dimensions": { 241 | "AutoScalingGroupName": "$autoscalinggroupname" 242 | }, 243 | "functions": [], 244 | "group": { 245 | "filter": "" 246 | }, 247 | "host": { 248 | "filter": "" 249 | }, 250 | "item": { 251 | "filter": "" 252 | }, 253 | "label": "", 254 | "metricEditorMode": 0, 255 | "metricName": "GroupInServiceInstances", 256 | "metricQueryType": 0, 257 | "mode": 0, 258 | "namespace": "AWS/AutoScaling", 259 | "options": { 260 | "showDisabledItems": false 261 | }, 262 | "period": "", 263 | "refId": "C", 264 | "region": "$region", 265 | "statistic": "Average" 266 | }, 267 | { 268 | "alias": "", 269 | "application": { 270 | "filter": "" 271 | }, 272 | "datasource": { 273 | "uid": "$datasource" 274 | }, 275 | "dimensions": { 276 | "AutoScalingGroupName": "$autoscalinggroupname" 277 | }, 278 | "functions": [], 279 | "group": { 280 | "filter": "" 281 | }, 282 | "host": { 283 | "filter": "" 284 | }, 285 | "item": { 286 | "filter": "" 287 | }, 288 | "label": "", 289 | "metricEditorMode": 0, 290 | "metricName": "GroupMaxSize", 291 | "metricQueryType": 0, 292 | "mode": 0, 293 | "namespace": "AWS/AutoScaling", 294 | "options": { 295 | "showDisabledItems": false 296 | }, 297 | "period": "", 298 | "refId": "D", 299 | "region": "$region", 300 | "statistic": "Average" 301 | }, 302 | { 303 | "alias": "", 304 | "application": { 305 | "filter": "" 306 | }, 307 | "datasource": { 308 | "type": "cloudwatch", 309 | "uid": "$datasource" 310 | }, 311 | "dimensions": { 312 | "AutoScalingGroupName": "$autoscalinggroupname" 313 | }, 314 | "functions": [], 315 | "group": { 316 | "filter": "" 317 | }, 318 | "host": { 319 | "filter": "" 320 | }, 321 | "item": { 322 | "filter": "" 323 | }, 324 | "label": "", 325 | "metricEditorMode": 0, 326 | "metricName": "GroupMinSize", 327 | "metricQueryType": 0, 328 | "mode": 0, 329 | "namespace": "AWS/AutoScaling", 330 | "options": { 331 | "showDisabledItems": false 332 | }, 333 | "period": "", 334 | "refId": "E", 335 | "region": "$region", 336 | "statistic": "Average" 337 | }, 338 | { 339 | "alias": "", 340 | "application": { 341 | "filter": "" 342 | }, 343 | "datasource": { 344 | "uid": "$datasource" 345 | }, 346 | "dimensions": { 347 | "AutoScalingGroupName": "$autoscalinggroupname" 348 | }, 349 | "functions": [], 350 | "group": { 351 | "filter": "" 352 | }, 353 | "host": { 354 | "filter": "" 355 | }, 356 | "item": { 357 | "filter": "" 358 | }, 359 | "label": "", 360 | "metricEditorMode": 0, 361 | "metricName": "GroupPendingInstances", 362 | "metricQueryType": 0, 363 | "mode": 0, 364 | "namespace": "AWS/AutoScaling", 365 | "options": { 366 | "showDisabledItems": false 367 | }, 368 | "period": "", 369 | "refId": "F", 370 | "region": "$region", 371 | "statistic": "Average" 372 | }, 373 | { 374 | "alias": "", 375 | "application": { 376 | "filter": "" 377 | }, 378 | "datasource": { 379 | "type": "cloudwatch", 380 | "uid": "$datasource" 381 | }, 382 | "dimensions": { 383 | "AutoScalingGroupName": "$autoscalinggroupname" 384 | }, 385 | "functions": [], 386 | "group": { 387 | "filter": "" 388 | }, 389 | "host": { 390 | "filter": "" 391 | }, 392 | "item": { 393 | "filter": "" 394 | }, 395 | "label": "", 396 | "metricEditorMode": 0, 397 | "metricName": "GroupStandbyInstances", 398 | "metricQueryType": 0, 399 | "mode": 0, 400 | "namespace": "AWS/AutoScaling", 401 | "options": { 402 | "showDisabledItems": false 403 | }, 404 | "period": "", 405 | "refId": "G", 406 | "region": "$region", 407 | "statistic": "Average" 408 | }, 409 | { 410 | "alias": "", 411 | "application": { 412 | "filter": "" 413 | }, 414 | "datasource": { 415 | "uid": "$datasource" 416 | }, 417 | "dimensions": { 418 | "AutoScalingGroupName": "$autoscalinggroupname" 419 | }, 420 | "functions": [], 421 | "group": { 422 | "filter": "" 423 | }, 424 | "host": { 425 | "filter": "" 426 | }, 427 | "item": { 428 | "filter": "" 429 | }, 430 | "label": "", 431 | "metricEditorMode": 0, 432 | "metricName": "GroupTerminatingInstances", 433 | "metricQueryType": 0, 434 | "mode": 0, 435 | "namespace": "AWS/AutoScaling", 436 | "options": { 437 | "showDisabledItems": false 438 | }, 439 | "period": "", 440 | "refId": "H", 441 | "region": "$region", 442 | "statistic": "Average" 443 | } 444 | ], 445 | "title": "Instances", 446 | "type": "timeseries" 447 | }, 448 | { 449 | "gridPos": { 450 | "h": 3, 451 | "w": 24, 452 | "x": 0, 453 | "y": 12 454 | }, 455 | "id": 2, 456 | "options": { 457 | "code": { 458 | "language": "plaintext", 459 | "showLineNumbers": false, 460 | "showMiniMap": false 461 | }, 462 | "content": " | \nAWS CloudWatch Auto Scaling documentation | \nInstalled from Grafana.com dashboards", 463 | "mode": "html" 464 | }, 465 | "pluginVersion": "11.3.1", 466 | "title": "Documentation", 467 | "type": "text" 468 | } 469 | ], 470 | "refresh": "", 471 | "schemaVersion": 40, 472 | "tags": [ 473 | "monitoringartist", 474 | "cloudwatch" 475 | ], 476 | "templating": { 477 | "list": [ 478 | { 479 | "current": {}, 480 | "includeAll": false, 481 | "label": "Datasource", 482 | "name": "datasource", 483 | "options": [], 484 | "query": "cloudwatch", 485 | "refresh": 1, 486 | "regex": "", 487 | "type": "datasource" 488 | }, 489 | { 490 | "current": {}, 491 | "datasource": { 492 | "type": "cloudwatch", 493 | "uid": "$datasource" 494 | }, 495 | "includeAll": false, 496 | "label": "Region", 497 | "name": "region", 498 | "options": [], 499 | "query": "regions()", 500 | "refresh": 1, 501 | "regex": "", 502 | "type": "query" 503 | }, 504 | { 505 | "current": {}, 506 | "datasource": { 507 | "type": "cloudwatch", 508 | "uid": "$datasource" 509 | }, 510 | "includeAll": false, 511 | "label": "AutoScalingGroupName", 512 | "name": "autoscalinggroupname", 513 | "options": [], 514 | "query": "dimension_values($region, AWS/AutoScaling, GroupTotalInstances, AutoScalingGroupName)", 515 | "refresh": 1, 516 | "regex": "", 517 | "type": "query" 518 | } 519 | ] 520 | }, 521 | "time": { 522 | "from": "now-7d", 523 | "to": "now" 524 | }, 525 | "timepicker": {}, 526 | "timezone": "browser", 527 | "title": "AWS Auto Scaling", 528 | "uid": "ce7pbrf5d9kaob", 529 | "version": 4, 530 | "weekStart": "" 531 | } -------------------------------------------------------------------------------- /aws-cloudwatch-usage-metrics/aws-cloudwatch-usage-metrics.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [], 3 | "__elements": {}, 4 | "__requires": [ 5 | { 6 | "type": "datasource", 7 | "id": "cloudwatch", 8 | "name": "CloudWatch", 9 | "version": "1.0.0" 10 | }, 11 | { 12 | "type": "grafana", 13 | "id": "grafana", 14 | "name": "Grafana", 15 | "version": "11.3.1" 16 | }, 17 | { 18 | "type": "panel", 19 | "id": "text", 20 | "name": "Text", 21 | "version": "" 22 | }, 23 | { 24 | "type": "panel", 25 | "id": "timeseries", 26 | "name": "Time series", 27 | "version": "" 28 | } 29 | ], 30 | "annotations": { 31 | "list": [ 32 | { 33 | "builtIn": 1, 34 | "datasource": { 35 | "type": "datasource", 36 | "uid": "grafana" 37 | }, 38 | "enable": true, 39 | "hide": true, 40 | "iconColor": "rgba(0, 211, 255, 1)", 41 | "name": "Annotations & Alerts", 42 | "type": "dashboard" 43 | } 44 | ] 45 | }, 46 | "description": "Browse and visualize available AWS CloudWatch Usage Metrics", 47 | "editable": false, 48 | "fiscalYearStartMonth": 0, 49 | "graphTooltip": 2, 50 | "id": null, 51 | "links": [], 52 | "panels": [ 53 | { 54 | "datasource": { 55 | "uid": "$datasource" 56 | }, 57 | "fieldConfig": { 58 | "defaults": { 59 | "color": { 60 | "mode": "palette-classic" 61 | }, 62 | "custom": { 63 | "axisBorderShow": false, 64 | "axisCenteredZero": false, 65 | "axisColorMode": "text", 66 | "axisLabel": "", 67 | "axisPlacement": "auto", 68 | "barAlignment": 0, 69 | "barWidthFactor": 0.6, 70 | "drawStyle": "line", 71 | "fillOpacity": 10, 72 | "gradientMode": "none", 73 | "hideFrom": { 74 | "legend": false, 75 | "tooltip": false, 76 | "viz": false 77 | }, 78 | "insertNulls": false, 79 | "lineInterpolation": "linear", 80 | "lineWidth": 1, 81 | "pointSize": 5, 82 | "scaleDistribution": { 83 | "type": "linear" 84 | }, 85 | "showPoints": "never", 86 | "spanNulls": true, 87 | "stacking": { 88 | "group": "A", 89 | "mode": "none" 90 | }, 91 | "thresholdsStyle": { 92 | "mode": "off" 93 | } 94 | }, 95 | "links": [], 96 | "mappings": [], 97 | "min": 0, 98 | "thresholds": { 99 | "mode": "absolute", 100 | "steps": [ 101 | { 102 | "color": "green", 103 | "value": null 104 | }, 105 | { 106 | "color": "red", 107 | "value": 80 108 | } 109 | ] 110 | }, 111 | "unit": "none" 112 | }, 113 | "overrides": [ 114 | { 115 | "matcher": { 116 | "id": "byName", 117 | "options": "Usage" 118 | }, 119 | "properties": [ 120 | { 121 | "id": "unit", 122 | "value": "percent" 123 | }, 124 | { 125 | "id": "custom.axisPlacement", 126 | "value": "right" 127 | }, 128 | { 129 | "id": "custom.axisPlacement", 130 | "value": "hidden" 131 | } 132 | ] 133 | } 134 | ] 135 | }, 136 | "gridPos": { 137 | "h": 7, 138 | "w": 24, 139 | "x": 0, 140 | "y": 0 141 | }, 142 | "id": 7, 143 | "options": { 144 | "alertThreshold": true, 145 | "legend": { 146 | "calcs": [ 147 | "mean", 148 | "max", 149 | "min" 150 | ], 151 | "displayMode": "table", 152 | "placement": "bottom", 153 | "showLegend": true 154 | }, 155 | "tooltip": { 156 | "mode": "multi", 157 | "sort": "none" 158 | } 159 | }, 160 | "pluginVersion": "11.3.1", 161 | "targets": [ 162 | { 163 | "alias": "", 164 | "application": { 165 | "filter": "" 166 | }, 167 | "datasource": { 168 | "type": "cloudwatch", 169 | "uid": "$datasource" 170 | }, 171 | "dimensions": { 172 | "Class": "$class", 173 | "Resource": "$resource", 174 | "Service": "$service", 175 | "Type": "$type" 176 | }, 177 | "expression": "", 178 | "functions": [], 179 | "group": { 180 | "filter": "" 181 | }, 182 | "hide": false, 183 | "highResolution": false, 184 | "host": { 185 | "filter": "" 186 | }, 187 | "id": "m1", 188 | "item": { 189 | "filter": "" 190 | }, 191 | "matchExact": true, 192 | "metricEditorMode": 0, 193 | "metricName": "$metric", 194 | "metricQueryType": 0, 195 | "mode": 0, 196 | "namespace": "AWS/Usage", 197 | "options": { 198 | "showDisabledItems": false 199 | }, 200 | "period": "", 201 | "refId": "A", 202 | "region": "$region", 203 | "returnData": false, 204 | "statistic": "Sum" 205 | } 206 | ], 207 | "title": "Metric", 208 | "type": "timeseries" 209 | }, 210 | { 211 | "datasource": { 212 | "uid": "$datasource" 213 | }, 214 | "fieldConfig": { 215 | "defaults": { 216 | "color": { 217 | "mode": "palette-classic" 218 | }, 219 | "custom": { 220 | "axisBorderShow": false, 221 | "axisCenteredZero": false, 222 | "axisColorMode": "text", 223 | "axisLabel": "", 224 | "axisPlacement": "auto", 225 | "barAlignment": 0, 226 | "barWidthFactor": 0.6, 227 | "drawStyle": "line", 228 | "fillOpacity": 10, 229 | "gradientMode": "none", 230 | "hideFrom": { 231 | "legend": false, 232 | "tooltip": false, 233 | "viz": false 234 | }, 235 | "insertNulls": false, 236 | "lineInterpolation": "linear", 237 | "lineWidth": 1, 238 | "pointSize": 5, 239 | "scaleDistribution": { 240 | "type": "linear" 241 | }, 242 | "showPoints": "never", 243 | "spanNulls": true, 244 | "stacking": { 245 | "group": "A", 246 | "mode": "none" 247 | }, 248 | "thresholdsStyle": { 249 | "mode": "off" 250 | } 251 | }, 252 | "links": [], 253 | "mappings": [], 254 | "min": 0, 255 | "thresholds": { 256 | "mode": "absolute", 257 | "steps": [ 258 | { 259 | "color": "green", 260 | "value": null 261 | }, 262 | { 263 | "color": "red", 264 | "value": 80 265 | } 266 | ] 267 | }, 268 | "unit": "percent" 269 | }, 270 | "overrides": [] 271 | }, 272 | "gridPos": { 273 | "h": 7, 274 | "w": 24, 275 | "x": 0, 276 | "y": 7 277 | }, 278 | "id": 8, 279 | "options": { 280 | "alertThreshold": true, 281 | "legend": { 282 | "calcs": [ 283 | "mean", 284 | "max", 285 | "min" 286 | ], 287 | "displayMode": "table", 288 | "placement": "bottom", 289 | "showLegend": true 290 | }, 291 | "tooltip": { 292 | "mode": "multi", 293 | "sort": "none" 294 | } 295 | }, 296 | "pluginVersion": "11.3.1", 297 | "targets": [ 298 | { 299 | "alias": "", 300 | "application": { 301 | "filter": "" 302 | }, 303 | "datasource": { 304 | "type": "cloudwatch", 305 | "uid": "$datasource" 306 | }, 307 | "dimensions": { 308 | "Class": "$class", 309 | "Resource": "$resource", 310 | "Service": "$service", 311 | "Type": "$type" 312 | }, 313 | "expression": "", 314 | "functions": [], 315 | "group": { 316 | "filter": "" 317 | }, 318 | "hide": true, 319 | "highResolution": false, 320 | "host": { 321 | "filter": "" 322 | }, 323 | "id": "m1", 324 | "item": { 325 | "filter": "" 326 | }, 327 | "matchExact": true, 328 | "metricEditorMode": 0, 329 | "metricName": "$metric", 330 | "metricQueryType": 0, 331 | "mode": 0, 332 | "namespace": "AWS/Usage", 333 | "options": { 334 | "showDisabledItems": false 335 | }, 336 | "period": "", 337 | "refId": "A", 338 | "region": "$region", 339 | "returnData": false, 340 | "statistic": "Sum" 341 | }, 342 | { 343 | "alias": "Usage", 344 | "datasource": { 345 | "uid": "$datasource" 346 | }, 347 | "dimensions": {}, 348 | "expression": "m1/SERVICE_QUOTA(m1)*100", 349 | "id": "", 350 | "matchExact": true, 351 | "metricEditorMode": 1, 352 | "metricName": "", 353 | "metricQueryType": 0, 354 | "namespace": "", 355 | "period": "", 356 | "refId": "B", 357 | "region": "default", 358 | "statistic": "Average" 359 | } 360 | ], 361 | "title": "Service Quota Usage", 362 | "type": "timeseries" 363 | }, 364 | { 365 | "gridPos": { 366 | "h": 3, 367 | "w": 24, 368 | "x": 0, 369 | "y": 14 370 | }, 371 | "id": 2, 372 | "options": { 373 | "code": { 374 | "language": "plaintext", 375 | "showLineNumbers": false, 376 | "showMiniMap": false 377 | }, 378 | "content": " | \nAWS CloudWatch Usage Metrics documentation | \nInstalled from Grafana.com dashboards", 379 | "mode": "html" 380 | }, 381 | "pluginVersion": "11.3.1", 382 | "title": "Documentation", 383 | "type": "text" 384 | } 385 | ], 386 | "refresh": "", 387 | "schemaVersion": 40, 388 | "tags": [ 389 | "monitoringartist", 390 | "cloudwatch" 391 | ], 392 | "templating": { 393 | "list": [ 394 | { 395 | "current": {}, 396 | "includeAll": false, 397 | "label": "Datasource", 398 | "name": "datasource", 399 | "options": [], 400 | "query": "cloudwatch", 401 | "refresh": 1, 402 | "regex": "", 403 | "type": "datasource" 404 | }, 405 | { 406 | "current": {}, 407 | "datasource": { 408 | "type": "cloudwatch", 409 | "uid": "$datasource" 410 | }, 411 | "definition": "regions()", 412 | "includeAll": false, 413 | "label": "Region", 414 | "name": "region", 415 | "options": [], 416 | "query": "regions()", 417 | "refresh": 1, 418 | "regex": "", 419 | "type": "query" 420 | }, 421 | { 422 | "current": {}, 423 | "datasource": { 424 | "type": "cloudwatch", 425 | "uid": "$datasource" 426 | }, 427 | "definition": "metrics(AWS/Usage)", 428 | "includeAll": false, 429 | "label": "Metric", 430 | "name": "metric", 431 | "options": [], 432 | "query": "metrics(AWS/Usage)", 433 | "refresh": 1, 434 | "regex": "", 435 | "sort": 1, 436 | "type": "query" 437 | }, 438 | { 439 | "current": {}, 440 | "datasource": { 441 | "type": "cloudwatch", 442 | "uid": "$datasource" 443 | }, 444 | "definition": "dimension_values($region, AWS/Usage, $metric, Type)", 445 | "includeAll": false, 446 | "label": "Type", 447 | "name": "type", 448 | "options": [], 449 | "query": "dimension_values($region, AWS/Usage, $metric, Type)", 450 | "refresh": 1, 451 | "regex": "", 452 | "sort": 1, 453 | "type": "query" 454 | }, 455 | { 456 | "current": {}, 457 | "datasource": { 458 | "type": "cloudwatch", 459 | "uid": "$datasource" 460 | }, 461 | "definition": "dimension_values($region, AWS/Usage, $metric, Service)", 462 | "includeAll": false, 463 | "label": "Service", 464 | "name": "service", 465 | "options": [], 466 | "query": "dimension_values($region, AWS/Usage, $metric, Service)", 467 | "refresh": 1, 468 | "regex": "", 469 | "sort": 1, 470 | "type": "query" 471 | }, 472 | { 473 | "current": {}, 474 | "datasource": { 475 | "type": "cloudwatch", 476 | "uid": "$datasource" 477 | }, 478 | "definition": "", 479 | "includeAll": false, 480 | "label": "Resource", 481 | "name": "resource", 482 | "options": [], 483 | "query": { 484 | "attributeName": "", 485 | "dimensionFilters": { 486 | "Service": "$service" 487 | }, 488 | "dimensionKey": "Resource", 489 | "ec2Filters": {}, 490 | "instanceID": "", 491 | "metricName": "$metric", 492 | "namespace": "AWS/Usage", 493 | "queryType": "dimensionValues", 494 | "refId": "CloudWatchVariableQueryEditor-VariableQuery", 495 | "region": "$region", 496 | "resourceType": "", 497 | "tags": {} 498 | }, 499 | "refresh": 1, 500 | "regex": "", 501 | "sort": 1, 502 | "type": "query" 503 | }, 504 | { 505 | "current": {}, 506 | "datasource": { 507 | "type": "cloudwatch", 508 | "uid": "$datasource" 509 | }, 510 | "definition": "dimension_values($region, AWS/Usage, $metric, Class)", 511 | "includeAll": false, 512 | "label": "Class", 513 | "name": "class", 514 | "options": [], 515 | "query": "dimension_values($region, AWS/Usage, $metric, Class)", 516 | "refresh": 1, 517 | "regex": "", 518 | "sort": 1, 519 | "type": "query" 520 | } 521 | ] 522 | }, 523 | "time": { 524 | "from": "now-7d", 525 | "to": "now" 526 | }, 527 | "timepicker": {}, 528 | "timezone": "browser", 529 | "title": "AWS CloudWatch Usage Metrics", 530 | "uid": "mkCnblDMk", 531 | "version": 2, 532 | "weekStart": "" 533 | } -------------------------------------------------------------------------------- /aws-ses/aws-ses.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [], 3 | "__elements": {}, 4 | "__requires": [ 5 | { 6 | "type": "datasource", 7 | "id": "cloudwatch", 8 | "name": "CloudWatch", 9 | "version": "1.0.0" 10 | }, 11 | { 12 | "type": "grafana", 13 | "id": "grafana", 14 | "name": "Grafana", 15 | "version": "11.3.1" 16 | }, 17 | { 18 | "type": "panel", 19 | "id": "text", 20 | "name": "Text", 21 | "version": "" 22 | }, 23 | { 24 | "type": "panel", 25 | "id": "timeseries", 26 | "name": "Time series", 27 | "version": "" 28 | } 29 | ], 30 | "annotations": { 31 | "list": [ 32 | { 33 | "builtIn": 1, 34 | "datasource": { 35 | "type": "grafana", 36 | "uid": "-- Grafana --" 37 | }, 38 | "enable": true, 39 | "hide": true, 40 | "iconColor": "rgba(0, 211, 255, 1)", 41 | "name": "Annotations & Alerts", 42 | "type": "dashboard" 43 | } 44 | ] 45 | }, 46 | "description": "Visualize AWS SES metrics", 47 | "editable": false, 48 | "fiscalYearStartMonth": 0, 49 | "graphTooltip": 0, 50 | "id": null, 51 | "links": [], 52 | "panels": [ 53 | { 54 | "datasource": { 55 | "uid": "$datasource" 56 | }, 57 | "fieldConfig": { 58 | "defaults": { 59 | "color": { 60 | "mode": "palette-classic" 61 | }, 62 | "custom": { 63 | "axisBorderShow": false, 64 | "axisCenteredZero": false, 65 | "axisColorMode": "text", 66 | "axisLabel": "", 67 | "axisPlacement": "auto", 68 | "barAlignment": 0, 69 | "barWidthFactor": 0.6, 70 | "drawStyle": "line", 71 | "fillOpacity": 10, 72 | "gradientMode": "none", 73 | "hideFrom": { 74 | "legend": false, 75 | "tooltip": false, 76 | "viz": false 77 | }, 78 | "insertNulls": false, 79 | "lineInterpolation": "linear", 80 | "lineWidth": 1, 81 | "pointSize": 5, 82 | "scaleDistribution": { 83 | "type": "linear" 84 | }, 85 | "showPoints": "never", 86 | "spanNulls": false, 87 | "stacking": { 88 | "group": "A", 89 | "mode": "none" 90 | }, 91 | "thresholdsStyle": { 92 | "mode": "off" 93 | } 94 | }, 95 | "mappings": [], 96 | "min": 0, 97 | "thresholds": { 98 | "mode": "absolute", 99 | "steps": [ 100 | { 101 | "color": "green", 102 | "value": null 103 | }, 104 | { 105 | "color": "red", 106 | "value": 80 107 | } 108 | ] 109 | }, 110 | "unit": "none" 111 | }, 112 | "overrides": [ 113 | { 114 | "matcher": { 115 | "id": "byName", 116 | "options": "Send" 117 | }, 118 | "properties": [ 119 | { 120 | "id": "custom.axisPlacement", 121 | "value": "right" 122 | } 123 | ] 124 | } 125 | ] 126 | }, 127 | "gridPos": { 128 | "h": 7, 129 | "w": 24, 130 | "x": 0, 131 | "y": 0 132 | }, 133 | "id": 7, 134 | "options": { 135 | "legend": { 136 | "calcs": [ 137 | "mean", 138 | "max", 139 | "min" 140 | ], 141 | "displayMode": "table", 142 | "placement": "bottom", 143 | "showLegend": true 144 | }, 145 | "tooltip": { 146 | "mode": "multi", 147 | "sort": "none" 148 | } 149 | }, 150 | "pluginVersion": "11.3.1", 151 | "targets": [ 152 | { 153 | "alias": "", 154 | "application": { 155 | "filter": "" 156 | }, 157 | "datasource": { 158 | "type": "cloudwatch", 159 | "uid": "$datasource" 160 | }, 161 | "dimensions": {}, 162 | "functions": [], 163 | "group": { 164 | "filter": "" 165 | }, 166 | "host": { 167 | "filter": "" 168 | }, 169 | "item": { 170 | "filter": "" 171 | }, 172 | "label": "", 173 | "metricEditorMode": 0, 174 | "metricName": "Send", 175 | "metricQueryType": 0, 176 | "mode": 0, 177 | "namespace": "AWS/SES", 178 | "options": { 179 | "showDisabledItems": false 180 | }, 181 | "period": "", 182 | "refId": "A", 183 | "region": "$region", 184 | "statistic": "Average" 185 | }, 186 | { 187 | "alias": "", 188 | "application": { 189 | "filter": "" 190 | }, 191 | "datasource": { 192 | "uid": "$datasource" 193 | }, 194 | "dimensions": {}, 195 | "functions": [], 196 | "group": { 197 | "filter": "" 198 | }, 199 | "host": { 200 | "filter": "" 201 | }, 202 | "item": { 203 | "filter": "" 204 | }, 205 | "label": "", 206 | "metricEditorMode": 0, 207 | "metricName": "Delivery", 208 | "metricQueryType": 0, 209 | "mode": 0, 210 | "namespace": "AWS/SES", 211 | "options": { 212 | "showDisabledItems": false 213 | }, 214 | "period": "", 215 | "refId": "B", 216 | "region": "$region", 217 | "statistic": "Average" 218 | } 219 | ], 220 | "title": "Send/Delivery", 221 | "type": "timeseries" 222 | }, 223 | { 224 | "datasource": { 225 | "type": "cloudwatch", 226 | "uid": "$datasource" 227 | }, 228 | "fieldConfig": { 229 | "defaults": { 230 | "color": { 231 | "mode": "palette-classic" 232 | }, 233 | "custom": { 234 | "axisBorderShow": false, 235 | "axisCenteredZero": false, 236 | "axisColorMode": "text", 237 | "axisLabel": "", 238 | "axisPlacement": "auto", 239 | "barAlignment": 0, 240 | "barWidthFactor": 0.6, 241 | "drawStyle": "line", 242 | "fillOpacity": 10, 243 | "gradientMode": "none", 244 | "hideFrom": { 245 | "legend": false, 246 | "tooltip": false, 247 | "viz": false 248 | }, 249 | "insertNulls": false, 250 | "lineInterpolation": "linear", 251 | "lineWidth": 1, 252 | "pointSize": 5, 253 | "scaleDistribution": { 254 | "type": "linear" 255 | }, 256 | "showPoints": "never", 257 | "spanNulls": false, 258 | "stacking": { 259 | "group": "A", 260 | "mode": "none" 261 | }, 262 | "thresholdsStyle": { 263 | "mode": "off" 264 | } 265 | }, 266 | "mappings": [], 267 | "min": 0, 268 | "thresholds": { 269 | "mode": "absolute", 270 | "steps": [ 271 | { 272 | "color": "green", 273 | "value": null 274 | }, 275 | { 276 | "color": "red", 277 | "value": 80 278 | } 279 | ] 280 | }, 281 | "unit": "none" 282 | }, 283 | "overrides": [ 284 | { 285 | "matcher": { 286 | "id": "byName", 287 | "options": "Bounce" 288 | }, 289 | "properties": [ 290 | { 291 | "id": "custom.axisPlacement", 292 | "value": "right" 293 | } 294 | ] 295 | } 296 | ] 297 | }, 298 | "gridPos": { 299 | "h": 7, 300 | "w": 24, 301 | "x": 0, 302 | "y": 7 303 | }, 304 | "id": 8, 305 | "options": { 306 | "legend": { 307 | "calcs": [ 308 | "mean", 309 | "max", 310 | "min" 311 | ], 312 | "displayMode": "table", 313 | "placement": "bottom", 314 | "showLegend": true 315 | }, 316 | "tooltip": { 317 | "mode": "multi", 318 | "sort": "none" 319 | } 320 | }, 321 | "pluginVersion": "11.3.1", 322 | "targets": [ 323 | { 324 | "alias": "", 325 | "application": { 326 | "filter": "" 327 | }, 328 | "datasource": { 329 | "uid": "$datasource" 330 | }, 331 | "dimensions": {}, 332 | "functions": [], 333 | "group": { 334 | "filter": "" 335 | }, 336 | "host": { 337 | "filter": "" 338 | }, 339 | "item": { 340 | "filter": "" 341 | }, 342 | "label": "", 343 | "metricEditorMode": 0, 344 | "metricName": "Bounce", 345 | "metricQueryType": 0, 346 | "mode": 0, 347 | "namespace": "AWS/SES", 348 | "options": { 349 | "showDisabledItems": false 350 | }, 351 | "period": "", 352 | "refId": "A", 353 | "region": "$region", 354 | "statistic": "Average" 355 | }, 356 | { 357 | "alias": "", 358 | "application": { 359 | "filter": "" 360 | }, 361 | "datasource": { 362 | "type": "cloudwatch", 363 | "uid": "$datasource" 364 | }, 365 | "dimensions": {}, 366 | "functions": [], 367 | "group": { 368 | "filter": "" 369 | }, 370 | "host": { 371 | "filter": "" 372 | }, 373 | "item": { 374 | "filter": "" 375 | }, 376 | "label": "", 377 | "metricEditorMode": 0, 378 | "metricName": "Reject", 379 | "metricQueryType": 0, 380 | "mode": 0, 381 | "namespace": "AWS/SES", 382 | "options": { 383 | "showDisabledItems": false 384 | }, 385 | "period": "", 386 | "refId": "C", 387 | "region": "$region", 388 | "statistic": "Average" 389 | } 390 | ], 391 | "title": "Bounce/Reject", 392 | "type": "timeseries" 393 | }, 394 | { 395 | "datasource": { 396 | "uid": "$datasource" 397 | }, 398 | "fieldConfig": { 399 | "defaults": { 400 | "color": { 401 | "mode": "palette-classic" 402 | }, 403 | "custom": { 404 | "axisBorderShow": false, 405 | "axisCenteredZero": false, 406 | "axisColorMode": "text", 407 | "axisLabel": "", 408 | "axisPlacement": "auto", 409 | "barAlignment": 0, 410 | "barWidthFactor": 0.6, 411 | "drawStyle": "line", 412 | "fillOpacity": 10, 413 | "gradientMode": "none", 414 | "hideFrom": { 415 | "legend": false, 416 | "tooltip": false, 417 | "viz": false 418 | }, 419 | "insertNulls": false, 420 | "lineInterpolation": "linear", 421 | "lineWidth": 1, 422 | "pointSize": 5, 423 | "scaleDistribution": { 424 | "type": "linear" 425 | }, 426 | "showPoints": "never", 427 | "spanNulls": false, 428 | "stacking": { 429 | "group": "A", 430 | "mode": "none" 431 | }, 432 | "thresholdsStyle": { 433 | "mode": "off" 434 | } 435 | }, 436 | "mappings": [], 437 | "min": 0, 438 | "thresholds": { 439 | "mode": "absolute", 440 | "steps": [ 441 | { 442 | "color": "green", 443 | "value": null 444 | }, 445 | { 446 | "color": "red", 447 | "value": 80 448 | } 449 | ] 450 | }, 451 | "unit": "none" 452 | }, 453 | "overrides": [] 454 | }, 455 | "gridPos": { 456 | "h": 7, 457 | "w": 24, 458 | "x": 0, 459 | "y": 14 460 | }, 461 | "id": 9, 462 | "options": { 463 | "legend": { 464 | "calcs": [ 465 | "mean", 466 | "max", 467 | "min" 468 | ], 469 | "displayMode": "table", 470 | "placement": "bottom", 471 | "showLegend": true 472 | }, 473 | "tooltip": { 474 | "mode": "multi", 475 | "sort": "none" 476 | } 477 | }, 478 | "pluginVersion": "11.3.1", 479 | "targets": [ 480 | { 481 | "alias": "", 482 | "application": { 483 | "filter": "" 484 | }, 485 | "datasource": { 486 | "type": "cloudwatch", 487 | "uid": "$datasource" 488 | }, 489 | "dimensions": {}, 490 | "functions": [], 491 | "group": { 492 | "filter": "" 493 | }, 494 | "host": { 495 | "filter": "" 496 | }, 497 | "item": { 498 | "filter": "" 499 | }, 500 | "label": "", 501 | "metricEditorMode": 0, 502 | "metricName": "Complaint", 503 | "metricQueryType": 0, 504 | "mode": 0, 505 | "namespace": "AWS/SES", 506 | "options": { 507 | "showDisabledItems": false 508 | }, 509 | "period": "", 510 | "refId": "A", 511 | "region": "$region", 512 | "statistic": "Average" 513 | } 514 | ], 515 | "title": "Complaint", 516 | "type": "timeseries" 517 | }, 518 | { 519 | "gridPos": { 520 | "h": 3, 521 | "w": 24, 522 | "x": 0, 523 | "y": 21 524 | }, 525 | "id": 2, 526 | "options": { 527 | "code": { 528 | "language": "plaintext", 529 | "showLineNumbers": false, 530 | "showMiniMap": false 531 | }, 532 | "content": " | \nAWS CloudWatch SES documentation | \nInstalled from Grafana.com dashboards", 533 | "mode": "html" 534 | }, 535 | "pluginVersion": "11.3.1", 536 | "title": "Documentation", 537 | "type": "text" 538 | } 539 | ], 540 | "refresh": "", 541 | "schemaVersion": 40, 542 | "tags": [ 543 | "monitoringartist", 544 | "cloudwatch" 545 | ], 546 | "templating": { 547 | "list": [ 548 | { 549 | "current": {}, 550 | "includeAll": false, 551 | "label": "Datasource", 552 | "name": "datasource", 553 | "options": [], 554 | "query": "cloudwatch", 555 | "refresh": 1, 556 | "regex": "", 557 | "type": "datasource" 558 | }, 559 | { 560 | "current": {}, 561 | "datasource": { 562 | "type": "cloudwatch", 563 | "uid": "$datasource" 564 | }, 565 | "includeAll": false, 566 | "label": "Region", 567 | "name": "region", 568 | "options": [], 569 | "query": "regions()", 570 | "refresh": 1, 571 | "regex": "", 572 | "type": "query" 573 | } 574 | ] 575 | }, 576 | "time": { 577 | "from": "now-24h", 578 | "to": "now" 579 | }, 580 | "timepicker": {}, 581 | "timezone": "browser", 582 | "title": "AWS SES", 583 | "uid": "ee80ifcwgvfggf", 584 | "version": 7, 585 | "weekStart": "" 586 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [Managed by Monitoring Artist: DevOps / Docker / Kubernetes / AWS ECS / Zabbix / Zenoss / Terraform / Monitoring](http://www.monitoringartist.com 'DevOps / Docker / Kubernetes / AWS ECS / Zabbix / Zenoss / Terraform / Monitoring') 2 | 3 | # Grafana dashboards for AWS CloudWatch 4 | 5 | Set of AWS Grafana dashboards published on 6 | [grafana.com](https://grafana.com/dashboards?dataSource=cloudwatch) - 7 | 10M+ downloads. 8 | 9 | Doc: 10 | - [Cloudwatch datasource configuration](https://grafana.com/docs/grafana/latest/datasources/cloudwatch/) 11 | - [Grafana doc](https://grafana.com/docs/) 12 | 13 | Feel free to create pull request for additional AWS resources/printscreens/... 14 | 15 | Please set your dashboard variables (`Region, ...`) after dashboard import. 16 | Empty dashboard variables are reason of initial *"Unable to call AWS API" or "Metric request error"* error. 17 | 18 | Import all Monitoring Artist AWS dashboards in one go (example script, 19 | `bash/curl/jq` required): 20 | 21 | ```bash 22 | #!/bin/bash 23 | jq --version >/dev/null 2>&1 || { echo >&2 "I require jq but it's not installed. Aborting."; exit 1; } 24 | ### Please edit grafana_* variables to match your Grafana setup: 25 | grafana_host="http://localhost:3000" 26 | grafana_cred="admin:admin" 27 | # Keep grafana_folder empty for adding the dashboards in "General" folder 28 | grafana_folder="AWS CloudWatch" 29 | ds=(1516 677 139 674 659 758 623 617 551 653 969 650 644 607 593 707 575 1519 581 584 2969 8050 11099 11154 11155 12979 13018 13040 13104 13892 14189 14391 14392 14954 14955 15016 16899 17741 17978 20007 20008 20009 20144); 30 | folderId=$(curl -s -k -u "$grafana_cred" $grafana_host/api/folders | jq -r --arg grafana_folder "$grafana_folder" '.[] | select(.title==$grafana_folder).id') 31 | if [ -z "$folderId" ] ; then echo "Didn't get folderId" ; else echo "Got folderId $folderId" ; fi 32 | for d in "${ds[@]}"; do 33 | echo -n "Processing $d: " 34 | j=$(curl -s -k -u "$grafana_cred" $grafana_host/api/gnet/dashboards/$d | jq .json) 35 | payload="{\"dashboard\":$j,\"overwrite\":true" 36 | if [ ! -z "$folderId" ] ; then payload="${payload}, \"folderId\": $folderId }"; else payload="${payload} }" ; fi 37 | curl -s -k -u "$grafana_cred" -XPOST -H "Accept: application/json" \ 38 | -H "Content-Type: application/json" \ 39 | -d "$payload" \ 40 | $grafana_host/api/dashboards/import; echo "" 41 | done 42 | ``` 43 | 44 | Use [AWS Policy Generator](http://awspolicygen.s3.amazonaws.com/policygen.html), 45 | which fits your needs. Example of minimal IAM role for Grafana (CloudWatch + EC2 metrics): 46 | 47 | ``` 48 | { 49 | "Version": "2012-10-17", 50 | "Statement": [ 51 | { 52 | "Sid": "AllowReadingMetricsFromCloudWatch", 53 | "Effect": "Allow", 54 | "Action": [ 55 | "cloudwatch:DescribeAlarmsForMetric", 56 | "cloudwatch:DescribeAlarmHistory", 57 | "cloudwatch:DescribeAlarms", 58 | "cloudwatch:ListMetrics", 59 | "cloudwatch:GetMetricStatistics", 60 | "cloudwatch:GetMetricData" 61 | ], 62 | "Resource": "*" 63 | }, 64 | { 65 | "Sid": "AllowReadingTagsInstancesRegionsFromEC2", 66 | "Effect": "Allow", 67 | "Action": [ 68 | "ec2:DescribeTags", 69 | "ec2:DescribeInstances", 70 | "ec2:DescribeRegions" 71 | ], 72 | "Resource": "*" 73 | }, 74 | { 75 | "Sid": "AllowReadingResourcesForTags", 76 | "Effect" : "Allow", 77 | "Action" : "tag:GetResources", 78 | "Resource" : "*" 79 | } 80 | ] 81 | } 82 | ``` 83 | See https://github.com/monitoringartist/grafana-cross-account-cloudwatch-access for AWS cross account access. 84 | 85 | You can also install this project as a Jsonnet library with [jsonnet-bundler](https://github.com/jsonnet-bundler/jsonnet-bundler): 86 | 87 | ```shell 88 | $ jb install github.com/monitoringartist/grafana-aws-cloudwatch-dashboards 89 | $ cat > aws-cloudwatch-dashboards.jsonnet < | \nAWS CloudWatch ECS documentation | \nInstalled from Grafana.com dashboards", 553 | "mode": "html" 554 | }, 555 | "pluginVersion": "11.3.1", 556 | "title": "Documentation", 557 | "type": "text" 558 | } 559 | ], 560 | "schemaVersion": 40, 561 | "tags": [ 562 | "monitoringartist", 563 | "cloudwatch" 564 | ], 565 | "templating": { 566 | "list": [ 567 | { 568 | "current": {}, 569 | "includeAll": false, 570 | "label": "Datasource", 571 | "name": "datasource", 572 | "options": [], 573 | "query": "cloudwatch", 574 | "refresh": 1, 575 | "regex": "", 576 | "type": "datasource" 577 | }, 578 | { 579 | "current": {}, 580 | "datasource": { 581 | "type": "cloudwatch", 582 | "uid": "$datasource" 583 | }, 584 | "definition": "", 585 | "includeAll": false, 586 | "label": "Region", 587 | "name": "region", 588 | "options": [], 589 | "query": "regions()", 590 | "refresh": 1, 591 | "regex": "", 592 | "type": "query" 593 | }, 594 | { 595 | "current": {}, 596 | "datasource": { 597 | "type": "cloudwatch", 598 | "uid": "$datasource" 599 | }, 600 | "definition": "", 601 | "includeAll": false, 602 | "label": "Cluster", 603 | "name": "cluster", 604 | "options": [], 605 | "query": "dimension_values($region,AWS/ECS,CPUUtilization,ClusterName)", 606 | "refresh": 1, 607 | "regex": "", 608 | "type": "query" 609 | }, 610 | { 611 | "current": {}, 612 | "datasource": { 613 | "type": "cloudwatch", 614 | "uid": "$datasource" 615 | }, 616 | "definition": "", 617 | "includeAll": false, 618 | "label": "Service", 619 | "name": "service", 620 | "options": [], 621 | "query": "dimension_values($region,AWS/ECS,CPUUtilization,ServiceName)", 622 | "refresh": 1, 623 | "regex": "", 624 | "type": "query" 625 | } 626 | ] 627 | }, 628 | "time": { 629 | "from": "now-24h", 630 | "to": "now" 631 | }, 632 | "timepicker": {}, 633 | "timezone": "browser", 634 | "title": "AWS ECS", 635 | "uid": "eKASolEGk", 636 | "version": 8, 637 | "weekStart": "" 638 | } -------------------------------------------------------------------------------- /aws-network-firewall/aws-network-firewall.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [], 3 | "__elements": {}, 4 | "__requires": [ 5 | { 6 | "type": "datasource", 7 | "id": "cloudwatch", 8 | "name": "CloudWatch", 9 | "version": "1.0.0" 10 | }, 11 | { 12 | "type": "grafana", 13 | "id": "grafana", 14 | "name": "Grafana", 15 | "version": "11.3.1" 16 | }, 17 | { 18 | "type": "panel", 19 | "id": "text", 20 | "name": "Text", 21 | "version": "" 22 | }, 23 | { 24 | "type": "panel", 25 | "id": "timeseries", 26 | "name": "Time series", 27 | "version": "" 28 | } 29 | ], 30 | "annotations": { 31 | "list": [ 32 | { 33 | "builtIn": 1, 34 | "datasource": { 35 | "type": "datasource", 36 | "uid": "grafana" 37 | }, 38 | "enable": true, 39 | "hide": true, 40 | "iconColor": "rgba(0, 211, 255, 1)", 41 | "name": "Annotations & Alerts", 42 | "target": { 43 | "limit": 100, 44 | "matchAny": false, 45 | "tags": [], 46 | "type": "dashboard" 47 | }, 48 | "type": "dashboard" 49 | } 50 | ] 51 | }, 52 | "description": "Visualize AWS Network Firewall metrics", 53 | "editable": false, 54 | "fiscalYearStartMonth": 0, 55 | "graphTooltip": 0, 56 | "id": null, 57 | "links": [], 58 | "panels": [ 59 | { 60 | "datasource": { 61 | "uid": "$datasource" 62 | }, 63 | "fieldConfig": { 64 | "defaults": { 65 | "color": { 66 | "mode": "palette-classic" 67 | }, 68 | "custom": { 69 | "axisBorderShow": false, 70 | "axisCenteredZero": false, 71 | "axisColorMode": "text", 72 | "axisLabel": "", 73 | "axisPlacement": "auto", 74 | "barAlignment": 0, 75 | "barWidthFactor": 0.6, 76 | "drawStyle": "line", 77 | "fillOpacity": 10, 78 | "gradientMode": "none", 79 | "hideFrom": { 80 | "legend": false, 81 | "tooltip": false, 82 | "viz": false 83 | }, 84 | "insertNulls": false, 85 | "lineInterpolation": "linear", 86 | "lineWidth": 1, 87 | "pointSize": 5, 88 | "scaleDistribution": { 89 | "type": "linear" 90 | }, 91 | "showPoints": "never", 92 | "spanNulls": true, 93 | "stacking": { 94 | "group": "A", 95 | "mode": "none" 96 | }, 97 | "thresholdsStyle": { 98 | "mode": "off" 99 | } 100 | }, 101 | "mappings": [], 102 | "min": 0, 103 | "thresholds": { 104 | "mode": "absolute", 105 | "steps": [ 106 | { 107 | "color": "green", 108 | "value": null 109 | }, 110 | { 111 | "color": "red", 112 | "value": 80 113 | } 114 | ] 115 | }, 116 | "unit": "short" 117 | }, 118 | "overrides": [] 119 | }, 120 | "gridPos": { 121 | "h": 7, 122 | "w": 24, 123 | "x": 0, 124 | "y": 0 125 | }, 126 | "id": 12, 127 | "options": { 128 | "alertThreshold": true, 129 | "legend": { 130 | "calcs": [ 131 | "mean", 132 | "max", 133 | "min" 134 | ], 135 | "displayMode": "table", 136 | "placement": "bottom", 137 | "showLegend": true 138 | }, 139 | "tooltip": { 140 | "mode": "multi", 141 | "sort": "none" 142 | } 143 | }, 144 | "pluginVersion": "11.3.1", 145 | "targets": [ 146 | { 147 | "alias": "", 148 | "application": { 149 | "filter": "" 150 | }, 151 | "datasource": { 152 | "type": "cloudwatch", 153 | "uid": "$datasource" 154 | }, 155 | "dimensions": { 156 | "AvailabilityZone": "$availabilityzone", 157 | "Engine": "$engine", 158 | "FirewallName": "$firewallname" 159 | }, 160 | "expression": "", 161 | "functions": [], 162 | "group": { 163 | "filter": "" 164 | }, 165 | "host": { 166 | "filter": "" 167 | }, 168 | "id": "", 169 | "item": { 170 | "filter": "" 171 | }, 172 | "label": "", 173 | "matchExact": true, 174 | "metricEditorMode": 0, 175 | "metricName": "PassedPackets", 176 | "metricQueryType": 0, 177 | "mode": 0, 178 | "namespace": "AWS/NetworkFirewall", 179 | "options": { 180 | "showDisabledItems": false 181 | }, 182 | "period": "", 183 | "refId": "A", 184 | "region": "$region", 185 | "statistic": "Average" 186 | }, 187 | { 188 | "alias": "", 189 | "datasource": { 190 | "uid": "$datasource" 191 | }, 192 | "dimensions": { 193 | "AvailabilityZone": "$availabilityzone", 194 | "Engine": "$engine", 195 | "FirewallName": "$firewallname" 196 | }, 197 | "expression": "", 198 | "hide": false, 199 | "id": "", 200 | "label": "", 201 | "matchExact": true, 202 | "metricEditorMode": 0, 203 | "metricName": "DroppedPackets", 204 | "metricQueryType": 0, 205 | "namespace": "AWS/NetworkFirewall", 206 | "period": "", 207 | "refId": "B", 208 | "region": "$region", 209 | "statistic": "Average" 210 | } 211 | ], 212 | "title": "PassedPackets/DroppedPackets ", 213 | "type": "timeseries" 214 | }, 215 | { 216 | "datasource": { 217 | "type": "cloudwatch", 218 | "uid": "$datasource" 219 | }, 220 | "fieldConfig": { 221 | "defaults": { 222 | "color": { 223 | "mode": "palette-classic" 224 | }, 225 | "custom": { 226 | "axisBorderShow": false, 227 | "axisCenteredZero": false, 228 | "axisColorMode": "text", 229 | "axisLabel": "", 230 | "axisPlacement": "auto", 231 | "barAlignment": 0, 232 | "barWidthFactor": 0.6, 233 | "drawStyle": "line", 234 | "fillOpacity": 10, 235 | "gradientMode": "none", 236 | "hideFrom": { 237 | "legend": false, 238 | "tooltip": false, 239 | "viz": false 240 | }, 241 | "insertNulls": false, 242 | "lineInterpolation": "linear", 243 | "lineWidth": 1, 244 | "pointSize": 5, 245 | "scaleDistribution": { 246 | "type": "linear" 247 | }, 248 | "showPoints": "never", 249 | "spanNulls": false, 250 | "stacking": { 251 | "group": "A", 252 | "mode": "none" 253 | }, 254 | "thresholdsStyle": { 255 | "mode": "off" 256 | } 257 | }, 258 | "mappings": [], 259 | "min": 0, 260 | "thresholds": { 261 | "mode": "absolute", 262 | "steps": [ 263 | { 264 | "color": "green", 265 | "value": null 266 | }, 267 | { 268 | "color": "red", 269 | "value": 80 270 | } 271 | ] 272 | }, 273 | "unit": "bytes" 274 | }, 275 | "overrides": [] 276 | }, 277 | "gridPos": { 278 | "h": 7, 279 | "w": 24, 280 | "x": 0, 281 | "y": 7 282 | }, 283 | "id": 7, 284 | "options": { 285 | "alertThreshold": true, 286 | "legend": { 287 | "calcs": [ 288 | "mean", 289 | "max", 290 | "min" 291 | ], 292 | "displayMode": "table", 293 | "placement": "bottom", 294 | "showLegend": true 295 | }, 296 | "tooltip": { 297 | "mode": "multi", 298 | "sort": "none" 299 | } 300 | }, 301 | "pluginVersion": "11.3.1", 302 | "targets": [ 303 | { 304 | "alias": "", 305 | "application": { 306 | "filter": "" 307 | }, 308 | "datasource": { 309 | "uid": "$datasource" 310 | }, 311 | "dimensions": { 312 | "AvailabilityZone": "$availabilityzone", 313 | "Engine": "$engine", 314 | "FirewallName": "$firewallname" 315 | }, 316 | "expression": "", 317 | "functions": [], 318 | "group": { 319 | "filter": "" 320 | }, 321 | "host": { 322 | "filter": "" 323 | }, 324 | "id": "", 325 | "item": { 326 | "filter": "" 327 | }, 328 | "label": "", 329 | "matchExact": true, 330 | "metricEditorMode": 0, 331 | "metricName": "ReceivedPacketCount", 332 | "metricQueryType": 0, 333 | "mode": 0, 334 | "namespace": "AWS/NetworkFirewall", 335 | "options": { 336 | "showDisabledItems": false 337 | }, 338 | "period": "", 339 | "refId": "A", 340 | "region": "$region", 341 | "statistic": "Average" 342 | } 343 | ], 344 | "title": "ReceivedPacketsCount", 345 | "type": "timeseries" 346 | }, 347 | { 348 | "datasource": { 349 | "type": "cloudwatch", 350 | "uid": "$datasource" 351 | }, 352 | "fieldConfig": { 353 | "defaults": { 354 | "color": { 355 | "mode": "palette-classic" 356 | }, 357 | "custom": { 358 | "axisBorderShow": false, 359 | "axisCenteredZero": false, 360 | "axisColorMode": "text", 361 | "axisLabel": "", 362 | "axisPlacement": "auto", 363 | "barAlignment": 0, 364 | "barWidthFactor": 0.6, 365 | "drawStyle": "line", 366 | "fillOpacity": 10, 367 | "gradientMode": "none", 368 | "hideFrom": { 369 | "legend": false, 370 | "tooltip": false, 371 | "viz": false 372 | }, 373 | "insertNulls": false, 374 | "lineInterpolation": "linear", 375 | "lineWidth": 1, 376 | "pointSize": 5, 377 | "scaleDistribution": { 378 | "type": "linear" 379 | }, 380 | "showPoints": "never", 381 | "spanNulls": false, 382 | "stacking": { 383 | "group": "A", 384 | "mode": "none" 385 | }, 386 | "thresholdsStyle": { 387 | "mode": "off" 388 | } 389 | }, 390 | "mappings": [], 391 | "min": 0, 392 | "thresholds": { 393 | "mode": "absolute", 394 | "steps": [ 395 | { 396 | "color": "green", 397 | "value": null 398 | }, 399 | { 400 | "color": "red", 401 | "value": 80 402 | } 403 | ] 404 | }, 405 | "unit": "bytes" 406 | }, 407 | "overrides": [] 408 | }, 409 | "gridPos": { 410 | "h": 7, 411 | "w": 24, 412 | "x": 0, 413 | "y": 14 414 | }, 415 | "id": 13, 416 | "options": { 417 | "alertThreshold": true, 418 | "legend": { 419 | "calcs": [ 420 | "mean", 421 | "max", 422 | "min" 423 | ], 424 | "displayMode": "table", 425 | "placement": "bottom", 426 | "showLegend": true 427 | }, 428 | "tooltip": { 429 | "mode": "multi", 430 | "sort": "none" 431 | } 432 | }, 433 | "pluginVersion": "11.3.1", 434 | "targets": [ 435 | { 436 | "alias": "", 437 | "application": { 438 | "filter": "" 439 | }, 440 | "datasource": { 441 | "uid": "$datasource" 442 | }, 443 | "dimensions": { 444 | "AvailabilityZone": "$availabilityzone", 445 | "Engine": "$engine", 446 | "FirewallName": "$firewallname" 447 | }, 448 | "expression": "", 449 | "functions": [], 450 | "group": { 451 | "filter": "" 452 | }, 453 | "host": { 454 | "filter": "" 455 | }, 456 | "id": "", 457 | "item": { 458 | "filter": "" 459 | }, 460 | "label": "", 461 | "matchExact": true, 462 | "metricEditorMode": 0, 463 | "metricName": "Packets", 464 | "metricQueryType": 0, 465 | "mode": 0, 466 | "namespace": "AWS/NetworkFirewall", 467 | "options": { 468 | "showDisabledItems": false 469 | }, 470 | "period": "", 471 | "refId": "A", 472 | "region": "$region", 473 | "statistic": "Average" 474 | }, 475 | { 476 | "alias": "", 477 | "application": { 478 | "filter": "" 479 | }, 480 | "datasource": { 481 | "type": "cloudwatch", 482 | "uid": "$datasource" 483 | }, 484 | "dimensions": { 485 | "TransitGateway": "$transitgateway" 486 | }, 487 | "expression": "", 488 | "functions": [], 489 | "group": { 490 | "filter": "" 491 | }, 492 | "host": { 493 | "filter": "" 494 | }, 495 | "id": "", 496 | "item": { 497 | "filter": "" 498 | }, 499 | "label": "", 500 | "matchExact": true, 501 | "metricEditorMode": 0, 502 | "metricName": "BytesOut", 503 | "metricQueryType": 0, 504 | "mode": 0, 505 | "namespace": "AWS/TransitGateway", 506 | "options": { 507 | "showDisabledItems": false 508 | }, 509 | "period": "", 510 | "refId": "B", 511 | "region": "$region", 512 | "statistic": "Average" 513 | } 514 | ], 515 | "title": "Packets/BytesOut", 516 | "type": "timeseries" 517 | }, 518 | { 519 | "gridPos": { 520 | "h": 3, 521 | "w": 24, 522 | "x": 0, 523 | "y": 21 524 | }, 525 | "id": 2, 526 | "options": { 527 | "code": { 528 | "language": "plaintext", 529 | "showLineNumbers": false, 530 | "showMiniMap": false 531 | }, 532 | "content": " | \nAWS CloudWatch Network Firewall documentation | \nInstalled from Grafana.com dashboards", 533 | "mode": "html" 534 | }, 535 | "pluginVersion": "11.3.1", 536 | "title": "Documentation", 537 | "type": "text" 538 | } 539 | ], 540 | "refresh": "", 541 | "schemaVersion": 40, 542 | "tags": [ 543 | "monitoringartist", 544 | "cloudwatch" 545 | ], 546 | "templating": { 547 | "list": [ 548 | { 549 | "current": {}, 550 | "includeAll": false, 551 | "label": "Datasource", 552 | "name": "datasource", 553 | "options": [], 554 | "query": "cloudwatch", 555 | "refresh": 1, 556 | "regex": "", 557 | "type": "datasource" 558 | }, 559 | { 560 | "current": {}, 561 | "datasource": { 562 | "type": "cloudwatch", 563 | "uid": "$datasource" 564 | }, 565 | "definition": "", 566 | "includeAll": false, 567 | "label": "Region", 568 | "name": "region", 569 | "options": [], 570 | "query": "regions()", 571 | "refresh": 1, 572 | "regex": "", 573 | "type": "query" 574 | }, 575 | { 576 | "current": {}, 577 | "datasource": { 578 | "type": "cloudwatch", 579 | "uid": "$datasource" 580 | }, 581 | "definition": "dimension_values($region, AWS/NetworkFirewall, Packets, FirewallName)", 582 | "includeAll": false, 583 | "label": "FirewallName", 584 | "name": "firewallname", 585 | "options": [], 586 | "query": "dimension_values($region, AWS/NetworkFirewall, Packets, FirewallName)", 587 | "refresh": 1, 588 | "regex": "", 589 | "type": "query" 590 | }, 591 | { 592 | "current": {}, 593 | "datasource": { 594 | "type": "cloudwatch", 595 | "uid": "$datasource" 596 | }, 597 | "definition": "dimension_values($region, AWS/NetworkFirewall, Packets, AvailabilityZone)", 598 | "includeAll": false, 599 | "label": "AvailabilityZone", 600 | "name": "availabilityzone", 601 | "options": [], 602 | "query": "dimension_values($region, AWS/NetworkFirewall, Packets, AvailabilityZone)", 603 | "refresh": 1, 604 | "regex": "", 605 | "type": "query" 606 | }, 607 | { 608 | "current": {}, 609 | "datasource": { 610 | "type": "cloudwatch", 611 | "uid": "$datasource" 612 | }, 613 | "definition": "dimension_values($region, AWS/NetworkFirewall, Packets, Engine)", 614 | "includeAll": false, 615 | "label": "Engine", 616 | "name": "engine", 617 | "options": [], 618 | "query": "dimension_values($region, AWS/NetworkFirewall, Packets, Engine)", 619 | "refresh": 1, 620 | "regex": "", 621 | "type": "query" 622 | } 623 | ] 624 | }, 625 | "time": { 626 | "from": "now-24h", 627 | "to": "now" 628 | }, 629 | "timepicker": {}, 630 | "timezone": "browser", 631 | "title": "AWS Network Firewall", 632 | "uid": "_nEZi1V7z", 633 | "version": 5, 634 | "weekStart": "" 635 | } -------------------------------------------------------------------------------- /aws-logs/aws-logs.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [], 3 | "__elements": {}, 4 | "__requires": [ 5 | { 6 | "type": "datasource", 7 | "id": "cloudwatch", 8 | "name": "CloudWatch", 9 | "version": "1.0.0" 10 | }, 11 | { 12 | "type": "grafana", 13 | "id": "grafana", 14 | "name": "Grafana", 15 | "version": "11.3.1" 16 | }, 17 | { 18 | "type": "panel", 19 | "id": "text", 20 | "name": "Text", 21 | "version": "" 22 | }, 23 | { 24 | "type": "panel", 25 | "id": "timeseries", 26 | "name": "Time series", 27 | "version": "" 28 | } 29 | ], 30 | "annotations": { 31 | "list": [ 32 | { 33 | "builtIn": 1, 34 | "datasource": { 35 | "type": "datasource", 36 | "uid": "grafana" 37 | }, 38 | "enable": true, 39 | "hide": true, 40 | "iconColor": "rgba(0, 211, 255, 1)", 41 | "name": "Annotations & Alerts", 42 | "type": "dashboard" 43 | } 44 | ] 45 | }, 46 | "description": "Visualize AWS CloudWatch logs metrics", 47 | "editable": false, 48 | "fiscalYearStartMonth": 0, 49 | "graphTooltip": 0, 50 | "id": null, 51 | "links": [], 52 | "panels": [ 53 | { 54 | "datasource": { 55 | "uid": "$datasource" 56 | }, 57 | "fieldConfig": { 58 | "defaults": { 59 | "color": { 60 | "mode": "palette-classic" 61 | }, 62 | "custom": { 63 | "axisBorderShow": false, 64 | "axisCenteredZero": false, 65 | "axisColorMode": "text", 66 | "axisLabel": "", 67 | "axisPlacement": "auto", 68 | "barAlignment": 0, 69 | "barWidthFactor": 0.6, 70 | "drawStyle": "line", 71 | "fillOpacity": 10, 72 | "gradientMode": "none", 73 | "hideFrom": { 74 | "legend": false, 75 | "tooltip": false, 76 | "viz": false 77 | }, 78 | "insertNulls": false, 79 | "lineInterpolation": "linear", 80 | "lineWidth": 1, 81 | "pointSize": 5, 82 | "scaleDistribution": { 83 | "type": "linear" 84 | }, 85 | "showPoints": "never", 86 | "spanNulls": false, 87 | "stacking": { 88 | "group": "A", 89 | "mode": "none" 90 | }, 91 | "thresholdsStyle": { 92 | "mode": "off" 93 | } 94 | }, 95 | "mappings": [], 96 | "min": 0, 97 | "thresholds": { 98 | "mode": "absolute", 99 | "steps": [ 100 | { 101 | "color": "green", 102 | "value": null 103 | }, 104 | { 105 | "color": "red", 106 | "value": 80 107 | } 108 | ] 109 | }, 110 | "unit": "bytes" 111 | }, 112 | "overrides": [ 113 | { 114 | "matcher": { 115 | "id": "byName", 116 | "options": "ForwardedBytes" 117 | }, 118 | "properties": [ 119 | { 120 | "id": "custom.axisPlacement", 121 | "value": "right" 122 | } 123 | ] 124 | } 125 | ] 126 | }, 127 | "gridPos": { 128 | "h": 7, 129 | "w": 24, 130 | "x": 0, 131 | "y": 0 132 | }, 133 | "id": 1, 134 | "options": { 135 | "legend": { 136 | "calcs": [ 137 | "mean", 138 | "max", 139 | "min" 140 | ], 141 | "displayMode": "table", 142 | "placement": "bottom", 143 | "showLegend": true 144 | }, 145 | "tooltip": { 146 | "mode": "multi", 147 | "sort": "none" 148 | } 149 | }, 150 | "pluginVersion": "11.3.1", 151 | "targets": [ 152 | { 153 | "alias": "", 154 | "application": { 155 | "filter": "" 156 | }, 157 | "datasource": { 158 | "type": "cloudwatch", 159 | "uid": "$datasource" 160 | }, 161 | "dimensions": { 162 | "LogGroupName": "$loggroupname" 163 | }, 164 | "functions": [], 165 | "group": { 166 | "filter": "" 167 | }, 168 | "host": { 169 | "filter": "" 170 | }, 171 | "item": { 172 | "filter": "" 173 | }, 174 | "label": "", 175 | "metricEditorMode": 0, 176 | "metricName": "IncomingBytes", 177 | "metricQueryType": 0, 178 | "mode": 0, 179 | "namespace": "AWS/Logs", 180 | "options": { 181 | "showDisabledItems": false 182 | }, 183 | "period": "", 184 | "refId": "A", 185 | "region": "$region", 186 | "statistic": "Sum" 187 | }, 188 | { 189 | "alias": "", 190 | "application": { 191 | "filter": "" 192 | }, 193 | "datasource": { 194 | "uid": "$datasource" 195 | }, 196 | "dimensions": { 197 | "LogGroupName": "$loggroupname" 198 | }, 199 | "functions": [], 200 | "group": { 201 | "filter": "" 202 | }, 203 | "host": { 204 | "filter": "" 205 | }, 206 | "item": { 207 | "filter": "" 208 | }, 209 | "label": "", 210 | "metricEditorMode": 0, 211 | "metricName": "ForwardedBytes", 212 | "metricQueryType": 0, 213 | "mode": 0, 214 | "namespace": "AWS/Logs", 215 | "options": { 216 | "showDisabledItems": false 217 | }, 218 | "period": "", 219 | "refId": "B", 220 | "region": "$region", 221 | "statistic": "Sum" 222 | } 223 | ], 224 | "title": "IncomingBytes/ForwardedBytes", 225 | "type": "timeseries" 226 | }, 227 | { 228 | "datasource": { 229 | "type": "cloudwatch", 230 | "uid": "$datasource" 231 | }, 232 | "fieldConfig": { 233 | "defaults": { 234 | "color": { 235 | "mode": "palette-classic" 236 | }, 237 | "custom": { 238 | "axisBorderShow": false, 239 | "axisCenteredZero": false, 240 | "axisColorMode": "text", 241 | "axisLabel": "", 242 | "axisPlacement": "auto", 243 | "barAlignment": 0, 244 | "barWidthFactor": 0.6, 245 | "drawStyle": "line", 246 | "fillOpacity": 10, 247 | "gradientMode": "none", 248 | "hideFrom": { 249 | "legend": false, 250 | "tooltip": false, 251 | "viz": false 252 | }, 253 | "insertNulls": false, 254 | "lineInterpolation": "linear", 255 | "lineWidth": 1, 256 | "pointSize": 5, 257 | "scaleDistribution": { 258 | "type": "linear" 259 | }, 260 | "showPoints": "never", 261 | "spanNulls": false, 262 | "stacking": { 263 | "group": "A", 264 | "mode": "none" 265 | }, 266 | "thresholdsStyle": { 267 | "mode": "off" 268 | } 269 | }, 270 | "mappings": [], 271 | "min": 0, 272 | "thresholds": { 273 | "mode": "absolute", 274 | "steps": [ 275 | { 276 | "color": "green", 277 | "value": null 278 | }, 279 | { 280 | "color": "red", 281 | "value": 80 282 | } 283 | ] 284 | }, 285 | "unit": "none" 286 | }, 287 | "overrides": [ 288 | { 289 | "matcher": { 290 | "id": "byName", 291 | "options": "ForwardedLogEvents" 292 | }, 293 | "properties": [ 294 | { 295 | "id": "custom.axisPlacement", 296 | "value": "right" 297 | } 298 | ] 299 | } 300 | ] 301 | }, 302 | "gridPos": { 303 | "h": 7, 304 | "w": 24, 305 | "x": 0, 306 | "y": 7 307 | }, 308 | "id": 10, 309 | "options": { 310 | "legend": { 311 | "calcs": [ 312 | "mean", 313 | "max", 314 | "min" 315 | ], 316 | "displayMode": "table", 317 | "placement": "bottom", 318 | "showLegend": true 319 | }, 320 | "tooltip": { 321 | "mode": "multi", 322 | "sort": "none" 323 | } 324 | }, 325 | "pluginVersion": "11.3.1", 326 | "targets": [ 327 | { 328 | "alias": "", 329 | "application": { 330 | "filter": "" 331 | }, 332 | "datasource": { 333 | "uid": "$datasource" 334 | }, 335 | "dimensions": { 336 | "LogGroupName": "$loggroupname" 337 | }, 338 | "functions": [], 339 | "group": { 340 | "filter": "" 341 | }, 342 | "host": { 343 | "filter": "" 344 | }, 345 | "item": { 346 | "filter": "" 347 | }, 348 | "label": "", 349 | "metricEditorMode": 0, 350 | "metricName": "IncomingLogEvents", 351 | "metricQueryType": 0, 352 | "mode": 0, 353 | "namespace": "AWS/Logs", 354 | "options": { 355 | "showDisabledItems": false 356 | }, 357 | "period": "", 358 | "refId": "A", 359 | "region": "$region", 360 | "statistic": "Sum" 361 | }, 362 | { 363 | "alias": "", 364 | "application": { 365 | "filter": "" 366 | }, 367 | "datasource": { 368 | "type": "cloudwatch", 369 | "uid": "$datasource" 370 | }, 371 | "dimensions": { 372 | "LogGroupName": "$loggroupname" 373 | }, 374 | "functions": [], 375 | "group": { 376 | "filter": "" 377 | }, 378 | "host": { 379 | "filter": "" 380 | }, 381 | "item": { 382 | "filter": "" 383 | }, 384 | "label": "", 385 | "metricEditorMode": 0, 386 | "metricName": "ForwardedLogEvents", 387 | "metricQueryType": 0, 388 | "mode": 0, 389 | "namespace": "AWS/Logs", 390 | "options": { 391 | "showDisabledItems": false 392 | }, 393 | "period": "", 394 | "refId": "B", 395 | "region": "$region", 396 | "statistic": "Sum" 397 | } 398 | ], 399 | "title": "IncomingLogEvents/ForwardedLogEvents", 400 | "type": "timeseries" 401 | }, 402 | { 403 | "datasource": { 404 | "uid": "$datasource" 405 | }, 406 | "fieldConfig": { 407 | "defaults": { 408 | "color": { 409 | "mode": "palette-classic" 410 | }, 411 | "custom": { 412 | "axisBorderShow": false, 413 | "axisCenteredZero": false, 414 | "axisColorMode": "text", 415 | "axisLabel": "", 416 | "axisPlacement": "auto", 417 | "barAlignment": 0, 418 | "barWidthFactor": 0.6, 419 | "drawStyle": "line", 420 | "fillOpacity": 10, 421 | "gradientMode": "none", 422 | "hideFrom": { 423 | "legend": false, 424 | "tooltip": false, 425 | "viz": false 426 | }, 427 | "insertNulls": false, 428 | "lineInterpolation": "linear", 429 | "lineWidth": 1, 430 | "pointSize": 5, 431 | "scaleDistribution": { 432 | "type": "linear" 433 | }, 434 | "showPoints": "never", 435 | "spanNulls": false, 436 | "stacking": { 437 | "group": "A", 438 | "mode": "none" 439 | }, 440 | "thresholdsStyle": { 441 | "mode": "off" 442 | } 443 | }, 444 | "mappings": [], 445 | "min": 0, 446 | "thresholds": { 447 | "mode": "absolute", 448 | "steps": [ 449 | { 450 | "color": "green", 451 | "value": null 452 | }, 453 | { 454 | "color": "red", 455 | "value": 80 456 | } 457 | ] 458 | }, 459 | "unit": "none" 460 | }, 461 | "overrides": [ 462 | { 463 | "matcher": { 464 | "id": "byName", 465 | "options": "DeliveryThrottling" 466 | }, 467 | "properties": [ 468 | { 469 | "id": "custom.axisPlacement", 470 | "value": "right" 471 | } 472 | ] 473 | } 474 | ] 475 | }, 476 | "gridPos": { 477 | "h": 7, 478 | "w": 24, 479 | "x": 0, 480 | "y": 14 481 | }, 482 | "id": 11, 483 | "options": { 484 | "legend": { 485 | "calcs": [ 486 | "mean", 487 | "max", 488 | "min" 489 | ], 490 | "displayMode": "table", 491 | "placement": "bottom", 492 | "showLegend": true 493 | }, 494 | "tooltip": { 495 | "mode": "multi", 496 | "sort": "none" 497 | } 498 | }, 499 | "pluginVersion": "11.3.1", 500 | "targets": [ 501 | { 502 | "alias": "", 503 | "application": { 504 | "filter": "" 505 | }, 506 | "datasource": { 507 | "type": "cloudwatch", 508 | "uid": "$datasource" 509 | }, 510 | "dimensions": { 511 | "LogGroupName": "$loggroupname" 512 | }, 513 | "functions": [], 514 | "group": { 515 | "filter": "" 516 | }, 517 | "host": { 518 | "filter": "" 519 | }, 520 | "item": { 521 | "filter": "" 522 | }, 523 | "label": "", 524 | "metricEditorMode": 0, 525 | "metricName": "DeliveryErrors", 526 | "metricQueryType": 0, 527 | "mode": 0, 528 | "namespace": "AWS/Logs", 529 | "options": { 530 | "showDisabledItems": false 531 | }, 532 | "period": "", 533 | "refId": "A", 534 | "region": "$region", 535 | "statistic": "Sum" 536 | }, 537 | { 538 | "alias": "", 539 | "application": { 540 | "filter": "" 541 | }, 542 | "datasource": { 543 | "uid": "$datasource" 544 | }, 545 | "dimensions": { 546 | "LogGroupName": "$loggroupname" 547 | }, 548 | "functions": [], 549 | "group": { 550 | "filter": "" 551 | }, 552 | "host": { 553 | "filter": "" 554 | }, 555 | "item": { 556 | "filter": "" 557 | }, 558 | "label": "", 559 | "metricEditorMode": 0, 560 | "metricName": "DeliveryThrottling", 561 | "metricQueryType": 0, 562 | "mode": 0, 563 | "namespace": "AWS/Logs", 564 | "options": { 565 | "showDisabledItems": false 566 | }, 567 | "period": "", 568 | "refId": "B", 569 | "region": "$region", 570 | "statistic": "Sum" 571 | } 572 | ], 573 | "title": "DeliveryErrors/DeliveryThrottling", 574 | "type": "timeseries" 575 | }, 576 | { 577 | "gridPos": { 578 | "h": 3, 579 | "w": 24, 580 | "x": 0, 581 | "y": 21 582 | }, 583 | "id": 2, 584 | "options": { 585 | "code": { 586 | "language": "plaintext", 587 | "showLineNumbers": false, 588 | "showMiniMap": false 589 | }, 590 | "content": " | \nAWS CloudWatch Log documentation | \nInstalled from Grafana.com dashboards\n", 591 | "mode": "html" 592 | }, 593 | "pluginVersion": "11.3.1", 594 | "title": "Documentation", 595 | "type": "text" 596 | } 597 | ], 598 | "refresh": "", 599 | "schemaVersion": 40, 600 | "tags": [ 601 | "monitoringartist", 602 | "cloudwatch" 603 | ], 604 | "templating": { 605 | "list": [ 606 | { 607 | "current": {}, 608 | "includeAll": false, 609 | "label": "Datasource", 610 | "name": "datasource", 611 | "options": [], 612 | "query": "cloudwatch", 613 | "refresh": 1, 614 | "regex": "", 615 | "type": "datasource" 616 | }, 617 | { 618 | "current": {}, 619 | "datasource": { 620 | "type": "cloudwatch", 621 | "uid": "$datasource" 622 | }, 623 | "includeAll": false, 624 | "label": "Region", 625 | "name": "region", 626 | "options": [], 627 | "query": "regions()", 628 | "refresh": 1, 629 | "regex": "", 630 | "type": "query" 631 | }, 632 | { 633 | "current": {}, 634 | "datasource": { 635 | "type": "cloudwatch", 636 | "uid": "$datasource" 637 | }, 638 | "includeAll": false, 639 | "label": "LogGroupName", 640 | "name": "loggroupname", 641 | "options": [], 642 | "query": "dimension_values($region, AWS/Logs, IncomingBytes, LogGroupName)", 643 | "refresh": 1, 644 | "regex": "", 645 | "type": "query" 646 | } 647 | ] 648 | }, 649 | "time": { 650 | "from": "now-24h", 651 | "to": "now" 652 | }, 653 | "timepicker": {}, 654 | "timezone": "browser", 655 | "title": "AWS CloudWatch Logs", 656 | "uid": "AWSLogs00", 657 | "version": 2, 658 | "weekStart": "" 659 | } --------------------------------------------------------------------------------