File monasca-log-metrics.conf.sample of Package openstack-monasca-log-metrics

input {
  kafka {
    ## zookeeper instances
    zk_connect => "
    ## must be equal to the topic name which monasca-log-transformer uses to send logs
    topic_id => ""
    group_id => "monasca_log_metrics"
    consumer_id => "monasca_log_metrics"
    consumer_threads => "1"
  }
}


filter {

  # drop logs that have not set log level
  if "level" not in [log] {
    drop { periodic_flush => true }
  } else {
    ruby {
      code => "
        log_level = event['log']['level'].downcase
        event['log']['level'] = log_level
      "
    }
  }

  # drop logs with log level not in warning,error
  if [log][level] not in [warning,error] {
    drop { periodic_flush => true }
  }

  ruby {
    code => "
      log_level = event['log']['level'].downcase
      log_ts = Time.now.to_f * 1000.0

      # metric name
      metric_name = 'log.%s' % log_level

      # build metric
      metric = {}
      metric['name'] = metric_name
      metric['timestamp'] = log_ts
      metric['value'] = 1
      metric['dimensions'] = event['log']['dimensions']
      metric['value_meta'] = {}

      # finish it off
      event['metric'] = metric.to_hash
    "
  }

  mutate {
    remove_field => ["log", "@version", "@timestamp", "log_level_original", "tags"]
  }

}


output {
  kafka {
    ## location of kafka brokers
    bootstrap_servers => "" 
    ## must be equal to the topic name where metrics are sent
    topic_id => ""
    client_id => "monasca_log_metrics"
    compression_type => "none"
  }
}
openSUSE Build Service is sponsored by