mirror of
https://github.com/storytold/terraform-aws-observability-accelerator.git
synced 2026-10-09 00:09:43 +00:00
fa38a90efc
* Typo * Remove Grafana provider * Temp: move dashbaords to gitOps * Move external labels to resource attributes * Avoid DDoS with using 0.0.0.0 * Pre-commit * Transition in two steps Will need to remove provider in a separate version to provide a transition path as removing this will break terraform and leave orphans in the state * Move patterns' dashboards creation to gitOps Standardize config objects for patterns as well * Pre-commit * Create AMP dashboard from external source with Grafana provider * Fix deprecated option * Fix Flux requirements * Run pre-commit * Update example with operator * Cleanup examples * Update multicluster example * Update multicluster example * Drop dead variable * Update docs * Change GitOps branch name * Update docs * Replacing Secrets Manager to SSM to store Grafana API Key (#178) * Fixing SSM * Fixing SSM * Replacing Secrets Manager with SSM * Replacing Secrets Manager with SSM * Update architecture diagram * Update architecture diagram * Update README.md * Update index.md * Fixing Grafana Operator Version * Fix multicluster example * Update docs --------- Co-authored-by: Ela AWS <51791117+elamaran11@users.noreply.github.com> Co-authored-by: Elamaran Shanmugam <elamaran.shan@gmail.com>
59 lines
1.9 KiB
Terraform
59 lines
1.9 KiB
Terraform
resource "aws_prometheus_rule_group_namespace" "recording_rules" {
|
|
count = var.pattern_config.enable_recording_rules ? 1 : 0
|
|
|
|
name = "accelerator-java-rules"
|
|
workspace_id = var.pattern_config.managed_prometheus_workspace_id
|
|
data = <<EOF
|
|
groups:
|
|
- name: default-metric
|
|
rules:
|
|
- record: metric:recording_rule
|
|
expr: avg(rate(container_cpu_usage_seconds_total[5m]))
|
|
EOF
|
|
}
|
|
|
|
resource "aws_prometheus_rule_group_namespace" "alerting_rules" {
|
|
count = var.pattern_config.enable_alerting_rules ? 1 : 0
|
|
|
|
name = "accelerator-java-alerting"
|
|
workspace_id = var.pattern_config.managed_prometheus_workspace_id
|
|
data = <<EOF
|
|
groups:
|
|
- name: default-alert
|
|
rules:
|
|
- alert: metric:alerting_rule
|
|
expr: jvm_memory_bytes_used{job="java", area="heap"} / jvm_memory_bytes_max * 100 > 80
|
|
for: 1m
|
|
labels:
|
|
severity: warning
|
|
annotations:
|
|
summary: "JVM heap warning"
|
|
description: "JVM heap of instance `{{$labels.instance}}` from application `{{$labels.application}}` is above 80% for one minute. (current=`{{$value}}%`)"
|
|
EOF
|
|
}
|
|
|
|
resource "kubectl_manifest" "flux_kustomization" {
|
|
count = var.pattern_config.enable_dashboards ? 1 : 0
|
|
|
|
yaml_body = <<YAML
|
|
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
|
|
kind: Kustomization
|
|
metadata:
|
|
name: ${var.pattern_config.flux_kustomization_name}
|
|
namespace: flux-system
|
|
spec:
|
|
interval: 1m0s
|
|
path: ${var.pattern_config.flux_kustomization_path}
|
|
prune: true
|
|
sourceRef:
|
|
kind: GitRepository
|
|
name: ${var.pattern_config.flux_gitrepository_name}
|
|
postBuild:
|
|
substitute:
|
|
AMG_AWS_REGION: ${var.pattern_config.managed_prometheus_workspace_region}
|
|
AMP_ENDPOINT_URL: ${var.pattern_config.managed_prometheus_workspace_endpoint}
|
|
AMG_ENDPOINT_URL: ${var.pattern_config.grafana_url}
|
|
GRAFANA_JAVA_JMX_DASH_URL: ${var.pattern_config.grafana_dashboard_url}
|
|
YAML
|
|
}
|