nathanielc / morgoth

Metric anomaly detection
http://docs.morgoth.io
Apache License 2.0
280 stars 31 forks source link

no method or property "morgoth" on *pipeline.WindowNode? #57

Open PrincipalsOffice opened 6 years ago

PrincipalsOffice commented 6 years ago

I tried to use the provided TICK script from the README and I kept seeing that error when I ran kapacitor define cpu_alert -type stream -dbrp telegraf.default -tick cpu_alert.tick, what might have went wrong?

nathanielc commented 6 years ago

@PrincipalsOffice Sounds like the UDF configuration is not correct. Can you share your [[udf]] config section?

PrincipalsOffice commented 6 years ago
kapacitord config
2017/12/20 11:14:11 Merging with configuration at: /Users/jasonye/test/kapacitor.conf
hostname = "localhost"
data_dir = "/Users/jasonye/.kapacitor"
skip-config-overrides = false
default-retention-policy = ""

[http]
  bind-address = ":9092"
  auth-enabled = false
  log-enabled = true
  write-tracing = false
  pprof-enabled = false
  https-enabled = false
  https-certificate = "/etc/ssl/kapacitor.pem"
  shutdown-timeout = "10s"
  shared-secret = ""

[replay]
  dir = "/Users/jasonye/.kapacitor/replay"

[storage]
  boltdb = "/Users/jasonye/.kapacitor/kapacitor.db"

[task]
  dir = "/Users/jasonye/.kapacitor/tasks"
  snapshot-interval = "1m0s"

[load]
  enabled = false
  dir = "/Users/jasonye/.kapacitor/load"

[[influxdb]]
  enabled = true
  name = "default"
  default = false
  urls = ["http://localhost:8086"]
  username = ""
  password = ""
  ssl-ca = ""
  ssl-cert = ""
  ssl-key = ""
  insecure-skip-verify = false
  timeout = "0s"
  disable-subscriptions = false
  subscription-protocol = "http"
  subscription-mode = "cluster"
  kapacitor-hostname = ""
  http-port = 0
  udp-bind = ""
  udp-buffer = 1000
  udp-read-buffer = 0
  startup-timeout = "5m0s"
  subscriptions-sync-interval = "1m0s"
  [influxdb.excluded-subscriptions]
    _kapacitor = ["autogen"]

[logging]
  file = "STDERR"
  level = "DEBUG"

[config-override]
  enabled = true

[collectd]
  enabled = false
  bind-address = ":25826"
  database = "collectd"
  retention-policy = ""
  batch-size = 5000
  batch-pending = 10
  batch-timeout = "10s"
  read-buffer = 0
  typesdb = "/usr/share/collectd/types.db"

[opentsdb]
  enabled = false
  bind-address = ":4242"
  database = "opentsdb"
  retention-policy = ""
  consistency-level = "one"
  tls-enabled = false
  certificate = "/etc/ssl/influxdb.pem"
  batch-size = 1000
  batch-pending = 5
  batch-timeout = "1s"
  log-point-errors = true

[alerta]
  enabled = false
  url = ""
  insecure-skip-verify = false
  token = ""
  token-prefix = ""
  environment = ""
  origin = ""
  timeout = "0s"

[hipchat]
  enabled = false
  url = ""
  token = ""
  room = ""
  global = false
  state-changes-only = false

[[mqtt]]
  enabled = false
  name = "default"
  default = false
  url = ""
  ssl-ca = ""
  ssl-cert = ""
  ssl-key = ""
  insecure-skip-verify = false
  client-id = ""
  username = ""
  password = ""

[opsgenie]
  enabled = false
  api-key = ""
  url = "https://api.opsgenie.com/v1/json/alert"
  recovery_url = "https://api.opsgenie.com/v1/json/alert/note"
  global = false

[pagerduty]
  enabled = false
  url = "https://events.pagerduty.com/generic/2010-04-15/create_event.json"
  service-key = ""
  global = false

[pushover]
  enabled = false
  token = ""
  user-key = ""
  url = "https://api.pushover.net/1/messages.json"

[[httppost]]
  endpoint = "example"
  url = "http://example.com"
  alert-template = ""
  alert-template-file = ""
  row-template = ""
  row-template-file = ""
  [httppost.basic-auth]
    username = ""
    password = ""

[smtp]
  enabled = false
  host = "localhost"
  port = 25
  username = ""
  password = ""
  no-verify = false
  global = false
  state-changes-only = false
  from = ""
  idle-timeout = "30s"

[snmptrap]
  enabled = false
  addr = "localhost:162"
  community = "kapacitor"
  retries = 1

[sensu]
  enabled = false
  addr = ""
  source = "Kapacitor"

[slack]
  enabled = false
  url = ""
  channel = ""
  username = "kapacitor"
  icon-emoji = ""
  global = false
  state-changes-only = false
  ssl-ca = ""
  ssl-cert = ""
  ssl-key = ""
  insecure-skip-verify = false

[talk]
  enabled = false
  url = ""
  author_name = ""

[telegram]
  enabled = false
  url = "https://api.telegram.org/bot"
  token = ""
  chat-id = ""
  parse-mode = ""
  disable-web-page-preview = false
  disable-notification = false
  global = false
  state-changes-only = false

[victorops]
  enabled = false
  api-key = ""
  routing-key = ""
  url = "https://alert.victorops.com/integrations/generic/20131114/alert"
  global = false
  json-data = false

[reporting]
  enabled = true
  url = "https://usage.influxdata.com"

[stats]
  enabled = true
  stats-interval = "10s"
  database = "_kapacitor"
  retention-policy = "autogen"
  timing-sample-rate = 0.1
  timing-movavg-size = 1000

[udf]
  [udf.functions]
    [udf.functions.morgoth]
      timeout = "10s"
      socket = ""
      prog = "/Users/jasonye/go/bin/morgoth"

[deadman]
  interval = "10s"
  threshold = 0.0
  id = "{{ .Group }}:NODE_NAME for task '{{ .TaskName }}'"
  message = "{{ .ID }} is {{ if eq .Level \"OK\" }}alive{{ else }}dead{{ end }}: {{ index .Fields \"emitted\" | printf \"%0.3f\" }} points/INTERVAL."
  global = false

I installed kapacitor from HomeBrew in macOS Sierra.

nathanielc commented 6 years ago

Hmm, that looks right. And you say you are using the TICKscript from the readme?

PrincipalsOffice commented 6 years ago

Yea, I am not sure why, perhaps some kind of versioning issue? Removing the @morgoth() block would work though.

aidanboran commented 6 years ago

I had a similar issue last week -exactly the same error trying to save a tickscript.

for me, the problem was file permissions - I was running 'kapacitord' as user that didn't have correct/enough permissions.

I am running on an "arm" embedded device so have a weird setup.... (http://www.friendlyarm.com/index.php?route=product/product&product_id=206)

ashishkaransingh commented 6 years ago

I tried using the TICKscript from http://docs.morgoth.io/docs/getting-started/ Getting the same error: "*invalid TICKscript: line 43 char 4: no method or property "morgoth" on pipeline.WindowNode**"

udf.functions.morgoth] timeout = "10s" socket = "" prog = "C:/Users/myusername/go/bin/morgoth"