2015-07-21 2 views
2

Я пытаюсь использовать cygnus с Mongo DB, но данные не сохраняются в базе данных. Здесь уведомление получил в Лебеде:Fiware cygnus: данные не сохраняются в mongo DB

15/07/21 14:48:01 INFO handlers.OrionRestHandler: Starting transaction (1437482681-118-0000000000) 
15/07/21 14:48:01 INFO handlers.OrionRestHandler: Received data ({ "subscriptionId" : "55a73819d0c457bb20b1d467", "originator" : "localhost", "contextResponses" : [ {  "contextElement" : {  "type" : "enocean",  "isPattern" : "false",  "id" : "enocean:myButtonA",  "attributes" : [   {   "name" : "ButtonValue",   "type" : "",   "value" : "ON",   "metadatas" : [    {    "name" : "TimeInstant",    "type" : "ISO8601",    "value" : "2015-07-20T21:29:56.509293Z"    }   ]   }  ]  },  "statusCode" : {  "code" : "200",  "reasonPhrase" : "OK"  } } ]}) 
15/07/21 14:48:01 INFO handlers.OrionRestHandler: Event put in the channel (id=1454120446, ttl=10) 

Вот моя конфигурация агента:

cygnusagent.sources = http-source 
cygnusagent.sinks = OrionMongoSink 
cygnusagent.channels = mongo-channel 

#============================================= 
# source configuration 
# channel name where to write the notification events 
cygnusagent.sources.http-source.channels = mongo-channel 
# source class, must not be changed 
cygnusagent.sources.http-source.type = org.apache.flume.source.http.HTTPSource 
# listening port the Flume source will use for receiving incoming notifications 
cygnusagent.sources.http-source.port = 5050 
# Flume handler that will parse the notifications, must not be changed 
cygnusagent.sources.http-source.handler = com.telefonica.iot.cygnus.handlers.OrionRestHandler 
# URL target 
cygnusagent.sources.http-source.handler.notification_target = /notify 
# Default service (service semantic depends on the persistence sink) 
cygnusagent.sources.http-source.handler.default_service = def_serv 
# Default service path (service path semantic depends on the persistence sink) 
cygnusagent.sources.http-source.handler.default_service_path = def_servpath 
# Number of channel re-injection retries before a Flume event is definitely discarded (-1 means infinite retries) 
cygnusagent.sources.http-source.handler.events_ttl = 10 
# Source interceptors, do not change 
cygnusagent.sources.http-source.interceptors = ts gi 
# TimestampInterceptor, do not change 
cygnusagent.sources.http-source.interceptors.ts.type = timestamp 
# GroupinInterceptor, do not change 
cygnusagent.sources.http-source.interceptors.gi.type = com.telefonica.iot.cygnus.interceptors.GroupingInterceptor$Builder 
# Grouping rules for the GroupingInterceptor, put the right absolute path to the file if necessary 
# See the doc/design/interceptors document for more details 
cygnusagent.sources.http-source.interceptors.gi.grouping_rules_conf_file = /home/egm_demo/usr/fiware-cygnus/conf/grouping_rules.conf 

# ============================================ 
# OrionMongoSink configuration 
# sink class, must not be changed 
cygnusagent.sinks.mongo-sink.type = com.telefonica.iot.cygnus.sinks.OrionMongoSink 
# channel name from where to read notification events 
cygnusagent.sinks.mongo-sink.channel = mongo-channel 
# FQDN/IP:port where the MongoDB server runs (standalone case) or comma-separated list of FQDN/IP:port pairs where the MongoDB replica set members run 
cygnusagent.sinks.mongo-sink.mongo_hosts = 127.0.0.1:27017 
# a valid user in the MongoDB server (or empty if authentication is not enabled in MongoDB) 
cygnusagent.sinks.mongo-sink.mongo_username = 
# password for the user above (or empty if authentication is not enabled in MongoDB) 
cygnusagent.sinks.mongo-sink.mongo_password = 
# prefix for the MongoDB databases 
#cygnusagent.sinks.mongo-sink.db_prefix = kura 
# prefix pro the MongoDB collections 
#cygnusagent.sinks.mongo-sink.collection_prefix = button 
# true is collection names are based on a hash, false for human redable collections 
cygnusagent.sinks.mongo-sink.should_hash = false 

# ============================================ 
# mongo-channel configuration 
# channel type (must not be changed) 
cygnusagent.channels.mongo-channel.type = memory 
# capacity of the channel 
cygnusagent.channels.mongo-channel.capacity = 1000 
# amount of bytes that can be sent per transaction 
cygnusagent.channels.mongo-channel.transactionCapacity = 100 

Вот мое правило:

{ 
    "grouping_rules": [ 
     { 
      "id": 1, 
      "fields": [ 
       "button" 
      ], 
      "regex": ".*",    
      "destination": "kura", 
      "fiware_service_path": "/kuraspath" 
     } 

    ] 
} 

Любые идеи, что я пропустил? Заранее спасибо за вашу помощь!

ответ

1

Эта конфигурация параметров является неправильным:

cygnusagent.sinks = OrionMongoSink 

В соответствии с конфигурацией, она должна быть mongo-sink (я имею в виду, вы настраиваете Монго поглотителей имени mongo-sink при настройке линий, таких как cygnusagent.sinks.mongo-sink.type).

Кроме того, я бы рекомендовал вам не использовать функцию правил группировки; это расширенная функция отправки данных в коллекцию, отличную от стандартной по умолчанию, и на первом этапе я буду играть с поведением по умолчанию. Таким образом, моя рекомендация - оставить путь к файлу в cygnusagent.sources.http-source.interceptors.gi.grouping_rules_conf_file, но прокомментируйте все JSON в нем :)