class Fluent::Plugin::RedfishAlertsFilter

Public Instance Methods

alertFilter(record, time) click to toggle source

def shutdown

# Override this method to use it to free up resources, etc.
super

end

# File lib/fluent/plugin/filter_redfish_alerts.rb, line 40
def alertFilter(record, time)
  record.each do |key, val|
    # Handling CPU Alerts. GET https://172.16.0.14/redfish/v1/TelemetryService/Triggers/CPUCriticalTrigger + https://172.16.0.14/redfish/v1/TelemetryService/Triggers/TMPCpuCriticalTrigger (starts after CPU0703)
    if (val == "CPU0000" || val == "CPU0003" || val == "CPU0004" || val == "CPU0006" || val == "CPU0700" || val == "CPU0701" || val == "CPU0702" || val == "CPU0703" || val == "TMP0204" || val == "TMP0201" || val == "TMP0203")
      tag = "mdm"
      myRecord = {}
      myRecord["Namespace"] = "ColomanagerFluentdRedfish"
      myRecord["Metric"] = "CPUAlert"
      myRecord["Dimensions"] = {"Region" => "CentralusEUAP", "IP" => record["ip"], "Id" => "#{val}", "Message" => record['Message']}
      myRecord["Value"] = "1"
      router.emit(tag, time, myRecord)
    end
    # Handling MEM Alerts. GET https://172.16.0.14/redfish/v1/TelemetryService/Triggers/MEMCriticalTrigger
    if (val == "MEM0003" || val == "MEM0010" || val == "MEM0702" || val == "MEM0002")
      tag = "mdm"
      myRecord = {}
      myRecord["Namespace"] = "ColomanagerFluentdRedfish"
      myRecord["Metric"] = "MEMAlert"
      myRecord["Dimensions"] = {"Region" => "CentralusEUAP", "IP" => record["ip"], "Id" => "#{val}", "Message" => record['Message']}
      myRecord["Value"] = "1"
      router.emit(tag, time, myRecord)
    end
    # Handling NVMe Alerts. GET https://172.16.0.14/redfish/v1/TelemetryService/Triggers/NVMeCriticalTrigger
    if (val == "PDR117")
      tag = "mdm"
      myRecord = {}
      myRecord["Namespace"] = "ColomanagerFluentdRedfish"
      myRecord["Metric"] = "NVMeAlert"
      myRecord["Dimensions"] = {"Region" => "CentralusEUAP", "IP" => record["ip"], "Id" => "#{val}", "Message" => record['Message']}
      myRecord["Value"] = "1"
      router.emit(tag, time, myRecord)
    end
    # Handling PDR (physical disk) Alerts. GET https://172.16.0.14/redfish/v1/TelemetryService/Triggers/PDRCriticalTrigger
    if (val == "PDR64" || val == "PDR44" || val == "PDR63" || val == "PDR62" || val == "PDR46" || val == "PDR61" || val == "PDR57" || val == "PDR47" || val == "PDR73" || val == "TMP0127" || val == "TMP0125" || val == "TMP0128")
      tag = "mdm"
      myRecord = {}
      myRecord["Namespace"] = "ColomanagerFluentdRedfish"
      myRecord["Metric"] = "DiskAlert"
      myRecord["Dimensions"] = {"Region" => "CentralusEUAP", "IP" => record["ip"], "Id" => "#{val}", "Message" => record['Message']}
      myRecord["Value"] = "1"
      router.emit(tag, time, myRecord)
    end
  end
end
configure(conf) click to toggle source

config_param works like other plugins

Calls superclass method
# File lib/fluent/plugin/filter_redfish_alerts.rb, line 25
def configure(conf)
  super
  # No config needed rn
end
filter(tag, time, record) click to toggle source
# File lib/fluent/plugin/filter_redfish_alerts.rb, line 85
def filter(tag, time, record)
  alertFilter(record, time)
end