diff --git a/monitoring/README.md b/monitoring/README.md new file mode 100644 index 00000000..aec8e99e --- /dev/null +++ b/monitoring/README.md @@ -0,0 +1,72 @@ +--- +display_name: Monitoring +description: Monitoring of workspace resources +maintainer_github: coder +verified: true +tags: [monitoring] +--- + +# Monitoring + +This module adds monitoring of workspace resources. + +```tf +module "monitoring" { + source = "registry.coder.com/modules/monitoring/coder" + version = "1.0.0" + agent_id = coder_agent.dev.id +} +``` + +## Examples + +```tf +module "monitoring" { + source = "registry.coder.com/modules/monitoring/coder" + version = "1.0.0" + agent_id = coder_agent.dev.id +} +``` + +### Enable/Disable + +You can customize the monitoring by setting the `enabled`, `memory_enabled`, and `disk_enabled` variables. + +```tf +module "monitoring" { + source = "registry.coder.com/modules/monitoring/coder" + version = "1.0.0" + agent_id = coder_agent.dev.id + enabled = false + memory_enabled = true + disk_enabled = false +} +``` + +### Customize Thresholds + +You can customize the thresholds by setting the `threshold`, `memory_threshold`, and `disk_threshold` variables. + +```tf +module "monitoring" { + source = "registry.coder.com/modules/monitoring/coder" + version = "1.0.0" + agent_id = coder_agent.dev.id + threshold = 90 + memory_threshold = 95 + disk_threshold = 90 +} +``` + +### Customize Disks + +You can customize the disks by setting the `disks` variable. + +```tf +module "monitoring" { + source = "registry.coder.com/modules/monitoring/coder" + version = "1.0.0" + agent_id = coder_agent.dev.id + disks = ["/"] +} +``` \ No newline at end of file diff --git a/monitoring/main.tf b/monitoring/main.tf new file mode 100644 index 00000000..112872e9 --- /dev/null +++ b/monitoring/main.tf @@ -0,0 +1,75 @@ +terraform { + required_version = ">= 1.0.25" + + required_providers { + coder = { + source = "coder/coder" + version = ">= 2.0.2" + } + } +} + +variable "description" { + default = "Monitoring of workspace resources" + description = "Monitoring of workspace resources" +} + +variable "threshold" { + type = number + description = "The threshold for the monitoring, used for all resources unless overridden by *_threshold - expressed as a percentage." + default = 90 +} + +variable "memory_threshold" { + type = number + description = "The threshold for the memory monitoring - expressed as a percentage." + default = 90 +} + +variable "disk_threshold" { + type = number + description = "The threshold for the disk monitoring - expressed as a percentage." + default = 90 +} + +variable "disks" { + type = list(string) + description = "The disks to monitor. e.g. ['/', '/home']" + default = ["/"] +} + +variable "enabled" { + type = bool + description = "Whether the monitoring is enabled." + default = true +} + +variable "memory_enabled" { + type = bool + description = "Whether the memory monitoring is enabled." + default = true +} + +variable "disk_enabled" { + type = bool + description = "Whether the disk monitoring is enabled." + default = true +} + +variable "agent_id" { + type = string + description = "The ID of the agent to monitor." +} + +data "coder_monitoring" "monitoring" { + name = "monitoring" + description = var.description + threshold = var.threshold + memory_threshold = var.memory_threshold + disk_threshold = var.disk_threshold + disks = var.disks + enabled = var.enabled + memory_enabled = var.memory_enabled + disk_enabled = var.disk_enabled + agent_id = var.agent_id +} \ No newline at end of file